以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  FTP文件夹下的内容全部下载到本地  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=94348)

--  作者:benwong2013
--  发布时间:2016/12/21 15:54:00
--  FTP文件夹下的内容全部下载到本地
Dim ftp1 As New FtpClient
Dim dls As List(of String) 
ftp1.Host="120.88.88.**"
ftp1.Account = "abc"
ftp1.Password = "****"
dls = ftp1.GetFileList("")
For Each dl As String In dls
   ftp1.Download(dl,"c:\\A\\",True)
Next

希望点击按钮能将ftp目录下的文件全部下载到c盘A文件夹下,但这样的代码发现下载很慢,基本上不可以用,请问如何修改,谢谢!

--  作者:有点色
--  发布时间:2016/12/21 16:00:00
--  

 ftpClient的download方法,应该是每次都会去连接一次。

 

 如果要快,你就必须自己弄一个ftpclient了 http://www.foxtable.com/bbs/dispbbs.asp?BoardID=2&ID=78301&skin=0

 


--  作者:benwong2013
--  发布时间:2016/12/21 16:16:00
--  
Dim ftpUrl As New Uri("ftp://127.0.0.1/")
Dim ftp As New FTPHelper(ftpUrl, "test", "test")
addhandler ftp.UploadFileCompleted, addressof client_UploadFileCompleted
addhandler ftp.UploadProgressChanged, addressof client_UploadProgressChanged

ftp.UploadFileAsync(projectpath & "test.jpg", "/test.jpg", True)

如果这个代码修改为将FTP目录下所有的文件下载到本地指定盘应该如何修改?

--  作者:有点色
--  发布时间:2016/12/21 16:52:00
--  

 你去看懂全局代码的那个ftphelper类,里面很多方法是可以直接调用的,比如,下载文件,可以这样写代码

 

Dim ftpUrl As New Uri("ftp://127.0.0.1/")
Dim ftp As New FTPHelper(ftpUrl, "test", "test")
ftp.GotoDirectory("test") \'进入某目录
For Each obj As object In ftp.ListFiles \'列出所有文件
    output.show(obj.name)
    ftp.Downloadfile("test.jpg", "d:\\test", "abc.jpg")

    \'ftp.Downloadfile("test.jpg", "d:\\test")
Next


--  作者:benwong2013
--  发布时间:2016/12/21 17:04:00
--  
Network.DownloadFile("ftp://120.86.**.**/Attachments.zip","c:\\A\\Attachments.zip","***","****")
Dim zip As New zipFile
zip.Open("c:\\A\\Attachments.zip")
zip.ExtractAll("c:\\A")
zip.Close()
If FileSys.FileExists("c:\\A\\Attachments.zip") Then \'如果指定的文件存在
    FileSys.DeleteFile("c:\\A\\Attachments.zip",2,2) \'则彻底删除之
End If

最后修改成为这样了