网站公告列表

  没有公告

加入收藏
设为首页
联系站长
您现在的位置: 网络学院 >> 程序设计 >> VB编程 >> 文章正文
  VB+MFTPX.OCX访问ftp服务器的小例子            【字体:
VB+MFTPX.OCX访问ftp服务器的小例子
作者:佚名    文章来源:不详    点击数:    更新时间:2007-8-6    

  mftpx.ocx是一个不错的控件,只是不支持中文的路径和空格,比较让人恼火。
正在装载数据……
最后只能通过其他的手段来弥补他的这个不足。 

  首先当然要引用MFTPX.OCX 。

  代码如下:

Private Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" (ByVal hwnd As LongByVal lpOperation As StringByVal lpFile As StringByVal lpParameters As StringByVal lpDirectory As StringByVal nShowCmd As LongAs Long
Const SW_SHOWNORMAL = 1
Dim fso As Scripting.FileSystemObject
Dim tmpFolder As String
Dim tmpFile_ As String
Dim tmpFullFile As String

Private Sub Check1_Click()
 
If Check1.Value = 0 Then
    Command1.Enabled 
= True
    Command2.Enabled 
= True
    Command3.Enabled 
= True
    Command4.Enabled 
= True
    Command5.Enabled 
= True
  
Else
    Command1.Enabled 
= False
    Command2.Enabled 
= False
    Command3.Enabled 
= False
    Command4.Enabled 
= False
  
End If
End Sub


'连接ftp
Private Sub Command1_Click()
   mFtp1.Host 
= "192.168.31.189"
   mFtp1.Port 
= "8088"
   mFtp1.Connect 
"wy""wy"
End Sub


'选择文件
Private Sub Command2_Click()
   
If Check1.Value = 1 Then Exit Sub
   cd1.Filter 
= "word文件(*.doc)|*.doc|autocad图纸(*.dwg)|*.dwg|所有文件(*.*)|*.*"
   cd1.DialogTitle 
= "选择要上传的文件"
   cd1.ShowOpen

   
If cd1.FileName <> "" Then
      Text1.Text 
= cd1.FileName
      tmpFile 
= createFileName(cd1.FileTitle) & "." & Mid(cd1.FileTitle, InStr(cd1.FileTitle, "."+ 1)
      tmpFullFile 
= tmpFolder & "" & tmpFile
      fso.CopyFile cd1.FileName, tmpFullFile
   
End If
   
End Sub


'上传
Private Sub Command3_Click()
   
On Error GoTo errEnd
   
If Check1.Value = 1 Then Exit Sub
   
If mFtp1.State = 0 Then
      Command1_Click
   
End If
   
If mFtp1.State = 1 Then
      
If InStr(cd1.FileTitle, "."> 0 Then
         
Dim myName As String
         pbar.Caption 
= "正在上传……"
         pbar.Visible 
= True
         Command1.Enabled 
= False
         Command2.Enabled 
= False
         Command3.Enabled 
= False
         Command4.Enabled 
= False
         mFtp1.PutFile tmpFullFile, tmpFile
         appendFile tmpFile, cd1.FileTitle
         fso.DeleteFile tmpFullFile
         Text1.Text 
= ""
         pbar.Caption 
= ""
         pbar.Visible 
= False
         Command1.Enabled 
= True
         Command2.Enabled 
= True
         Command3.Enabled 
= True
         Command4.Enabled 
= True
      
End If
   
End If
   
Exit Sub
errEnd:
    pbar.Caption 
= ""
    pbar.Visible 
= False
         Command1.Enabled 
= True
         Command2.Enabled 
= True
         Command3.Enabled 
= True
         Command4.Enabled 
= True
    
MsgBox "出错了,错误提示:" & Err.Description
End Sub


'处理
Private Sub appendFile(ByVal newFileName As StringByVal oldFileName As String)
   
Dim lstItem As ListItem
   
Set lstItem = ListView1.ListItems.Add(, , newFileName)
   lstItem.SubItems(
1= oldFileName
   lstItem.SubItems(
2= Now
End Sub



'构造文件名
Private Function createFileName(ByVal str As StringAs String
   
Dim newStr As String
   newStr 
= ""
   
If str <> "" Then
       newStr 
= CStr(Year(Date)) & fillCode(CStr(Month(Date)), 2& fillCode(CStr(Day(Date)), 2& fillCode(CStr(Hour(Time)), 2& fillCode(CStr(Minute(Time)), 2& fillCode(CStr(Second(Time)), 2)
       newStr 
= newStr & CStr(CInt(Round(1000 * Rnd(Minute(Time) & Second(Time)))))
   
End If
   createFileName 
= newStr
End Function

'给字符串前加 0 补码
Private Function fillCode(ByVal str As StringByVal fLen As LongAs String
    fillCode 
= Mid(CStr(10 ^ (fLen - Len(str))), 2& str
End Function


'删除
Private Sub Command4_Click()
   
If Check1.Value = 1 Then Exit Sub
   
If mFtp1.State = 0 Then
      Command1_Click
   
End If
   
If mFtp1.State = 1 Then
      
If ListView1.ListItems.Count > 0 Then
         
If ListView1.SelectedItem <> "" Then
              mFtp1.Delete ListView1.SelectedItem.Text
              ListView1.ListItems.Remove (ListView1.SelectedItem.Index)
         
End If
      
End If
   
End If
End Sub


'打开文件
Private Sub Command5_Click()
   
   
If mFtp1.State = 0 Then
      Command1_Click
   
End If
   
If mFtp1.State = 1 Then
      
If ListView1.ListItems.Count > 0 Then
         
If ListView1.SelectedItem <> "" Then
            
Dim myName As String
            myName 
= tmpFolder & "" & ListView1.SelectedItem.SubItems(1)

            
If Not fso.FileExists(myName) Then
                 pbar.Caption 
= "正在下载……"
                 pbar.Visible 
= True
                 
If Check1.Value = 0 Then
                    Command1.Enabled 
= False
                    Command2.Enabled 
= False
                    Command3.Enabled 
= False
                    Command4.Enabled 
= False
                    Command5.Enabled 
= False
                 
End If
                 mFtp1.GetFile ListView1.SelectedItem.Text, tmpFolder 
& "" & ListView1.SelectedItem.Text
                 fso.CopyFile tmpFolder 
& "" & ListView1.SelectedItem.Text, myName
                 fso.DeleteFile tmpFolder 
& "" & ListView1.SelectedItem.Text
            
End If
            ShellExecute hwnd, 
"open", myName, vbNullString, vbNullString, 1
            
            Text1.Text 
= ""
            pbar.Caption 
= ""
            pbar.Visible 
= False
            
If Check1.Value = 0 Then
                Command1.Enabled 
= True
                Command2.Enabled 
= True
                Command3.Enabled 
= True
                Command4.Enabled 
= True
                Command5.Enabled 
= True
            
End If
         
End If
      
End If
   
End If
End Sub


'装载表单
Private Sub Form_Load()
   
Set fso = New Scripting.FileSystemObject
   tmpFolder 
= "c:Northsnow070101"
   
If Not fso.FolderExists(tmpFolder) Then
     fso.CreateFolder tmpFolder
   
End If
   ListView1.View 
= lvwReport
   ListView1.ColumnHeaders.Add 
1"newfile""NewFileName", ListView1.Width / 30
   ListView1.ColumnHeaders.Add 
2"oldfile""OldFileName", ListView1.Width / 30
   ListView1.ColumnHeaders.Add 
3"udate""UploadDate", ListView1.Width / 30
   ListView1.GridLines 
= True
   ListView1.FullRowSelect 
= True
   ListView1.LabelEdit 
= lvwManual
   ListView1.MultiSelect 
= False
   pbar.Visible 
= False
   pbar.Caption 
= ""
End Sub


Private Sub Form_Unload(Cancel As Integer)
   
If fso.FolderExists(tmpFolder) Then
     fso.DeleteFolder tmpFolder, 
True
   
End If
   
Set fso = Nothing
End Sub



 

运行界面:

请输入大于5个字符的标题




本文来源:http://blog.csdn.net/precipitant/archive/2007/07/17/1694414.aspx
站内文章搜索 高级搜索
文章录入:admin    责任编辑:admin 
  • 上一篇文章:

  • 下一篇文章:
  • 发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
    最新热点 最新推荐 相关文章
     如何在ado中使用connect…
     vb 贪吃蛇 单人版游戏 (…
     关于在vb中进行com组件的…
     用vb6.0编写自我升级的程…
     vb自动登陆网络站点详解…
     vb打造超酷个性化菜单(…
  • jmf摄像头applet

  • Cookie又见Cookie-使用Html…

  • javabean+mysql数据库连接池

  • 初学者入门:一个COM/ATL简单…

  • 初学者入门:写一个简单的CO…

  • VC/MFC.CString操作指南

  • VC++ MFC DLL动态链接库编写…

  • 在C++实现C#中的属性(Proper…

  • 在C++实现C#中的属性(Proper…

  • C++ Meta Programming 和 Bo…

  •   网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)
    网络学院©2007 www.23book.net
    为您提供web编程,vb编程,vc编程,服务器架设管理,数据库设计等方面的知识 站长:David