求教个关于VB WINSOCK远程获取FTP远程目录列表问题
本人想用WINDSOCK获取远程目录里的文件,包括未知级别的子目录里文件内容,获取文件进行批量下载,相当于一个FTP。目前情况是可以单独获取一个文件内容,但是递归的时候WINSOCK却无法再次进行二级目录的访问。基本流程如下:
Private Sub Command1_Click()
FF(Folder)‘(第一次通过这个访问的时候一切正常,都能获取到,但是递归的时候却卡在了“wscControl.SendData "NOOP " & vbCrLf”返回的“200 NOOP command successful.”这一步不走了)
End Sub
Public Function FolderFile(Folder As String)
If wscControl.State <> 7 Then
MsgBox "请确认当前连接状态!"
Exit Function
End If
wscControl.SendData "NOOP " & vbCrLf
........
wscControl.SendData "TYPE I" vbCrLf
......
wscControl.SendData "PASV"& vbCrLf
TmpIp = PassiveInfo(tmp, 1)
TmpPort = PassiveInfo(tmp, 2)
wscControl.SendData "NLST " & Folder & vbCrLf
'数据下载部分
If wscList Is Nothing Then
Set wscList = Controls.Add("MSWinsock.Winsock", "wscList", Me)
TimerData.Interval = 100
TimerData.Enabled = True
End If
With wscList
.RemoteHost = TmpIp
.RemotePort = TmpPort
.Connect
End With
Allfiles = tmpL
Dim f As Integer, FL() As String
FL = Split(tmpL, vbCrLf)
For f = 0 To UBound(FL)
If InStr(Right(FL(f), 5), ".") > 0 Then
Allfiles = Allfiles & FL(f)
End If
Next
For f = 0 To UBound(FL)
If InStr(Right(FL(f), 5), ".") = 0 Then
If FL(f) <> "" Then
Allfiles = Allfiles & FF(FL(f)
End If
End If
Next
End Function
基本的wscControl是Set wscControl= Controls.Add("MSWinsock.Winsock", "wscControl", Me)生成的
想请问下高手是不是每次循环的时候都需要先关闭再重新连接?
或者每次访问都需要生成一个WINSOCK?
希望能给个比我更好的方法,因为半路出家,VB不熟,最好是源码
我的目的就是做一个自动的FTP
先谢了 --------------------编程问答-------------------- 分数不够啊,只有十分,希望版主能帮我移动技术版不?"编程..." --------------------编程问答-------------------- 顶起顶起顶起
补充:VB , 非技术类