永发信息网

VB 如何获取FTP上的文件

答案:3  悬赏:60  手机版
解决时间 2021-01-03 12:00
  • 提问者网友:战魂
  • 2021-01-03 06:08
VB 如何获取FTP上的文件,并将所有文件和文件夹用LIST显示出来
最佳答案
  • 五星知识达人网友:玩世
  • 2021-01-03 06:21
要用到inet控件。public strData as string
'这段可以返回服务器中的第一级目录名,保存在strData中, 如有多个文件夹名每个文件夹名会以空格分开。读取时判段一下。
Inet1.Execute Inet1.URL, "dir """ & dirName & """"
Do
DoEvents
Loop While Inet1.StillExecuting = True
msgbox strData
'这段是进入目录中,要想获得服务器中所有的文件夹名,就可以用递规的办法来获得。
Inet1.Execute Inet1.URL, "cd """ & dirName & """"
Do
DoEvents
Loop While Inet1.StillExecuting = True
Private Sub Inet1_StateChanged(ByVal State As Integer)
Select Case State
Case 1

StatusBar1.Panels.Item(1).Text = "该控件正在查询所指定的主机的 IP 地址"

Case 2

StatusBar1.Panels.Item(1).Text = "该控件已成功地找到所指定的主机的 IP 地址"

Case 3

StatusBar1.Panels.Item(1).Text = "该控件正在与主机连接"

Case 4

StatusBar1.Panels.Item(1).Text = "该控件已与主机连接成功"

Case 5

StatusBar1.Panels.Item(1).Text = "该控件正在向主机发送请求"

Case 6

StatusBar1.Panels.Item(1).Text = "该控件发送请求已成功"

Case 7

StatusBar1.Panels.Item(1).Text = "该控件正在接收主机的响应"

Case 8

StatusBar1.Panels.Item(1).Text = "该控件已成功地接收到主机的响应"

Case 9

StatusBar1.Panels.Item(1).Text = "该控件正在解除与主机的连接"

Case 10

StatusBar1.Panels.Item(1).Text = "该控件已成功地与主机解除了连接"

Case 11
MsgBox "与主机通讯时出现了错误", vbInformation, "个人资料"
Case 12
Dim vtData As Variant
Dim bDone As Boolean
bDone = False
'取得第一个块。
vtData = Inet1.GetChunk(1024, icString)
DoEvents
Do While Not bDone
strData = strData & vtData
'取得下一个块。
vtData = Inet1.GetChunk(1024, icString)
DoEvents
If Len(vtData) = 0 Then
bDone = True
End If
Loop
StatusBar1.Panels.Item(1).Text = "该请求已经完成,并且所有数据均已接收到"
Case Else
StatusBar1.Panels.Item(1).Text = Inet1.ResponseCode & ": " & Inet1.ResponseInfo
End Select
End Sub
关于inet控件的祥细用法可以看msdn中的帮助。
全部回答
  • 1楼网友:蕴藏春秋
  • 2021-01-03 06:40
vb6中, fso控件对文件的操作功能比较多。 winsock控件的网络功能比较强。 microsoft internet transfer 控件。 我记得有这个控件,使用get方法,先将文件下到本地,然后再读取ini内容就可以了。 这是最简单的方法了,如果使用socket写底层,你需要完全理解ftp协方,哥们当年不知道这个控件,结果自己写了个ftp,差点把自己给玩死。 先设置microsoft internet transfer的属性也就是url,传输协议,用户名,口令等等,都是中文的,设计时完成。最后使用execute方法里的get获得文件。 至于读取本地ini文件,如果是标准ini,可以使用api函数,如果只是普通文本,那就用input与output好了。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯