-1
我是一名VB程序員。在VB.NET中,ftp上傳多個文件的最佳方式是什麼?
我正在創建一個桌面應用程序,用戶通過ftp將某些文件上載到服務器。
這些文件都位於本地的同一文件夾中,並上傳到服務器上的同一文件夾中。
通過momment我與此代碼的工作:
For Each File As String In My.Computer.FileSystem.GetFiles(_
path, _
FileIO.SearchOption.SearchAllSubDirectories, _
"*.jpg")
Dim fileInf As IO.FileInfo = New IO.FileInfo(File)
Dim uri As String = serveruri
Dim reqFTP As Net.FtpWebRequest
reqFTP = Net.FtpWebRequest.Create(New Uri(uri))
reqFTP.Credentials = New Net.NetworkCredential(user, pass)
reqFTP.KeepAlive = False
reqFTP.Method = Net.WebRequestMethods.Ftp.UploadFile
reqFTP.UseBinary = True
reqFTP.ContentLength = fileInf.Length
Dim buffLength As Integer = 2048
Dim buff(buffLength) As Byte
Dim contentLen As Integer
Dim fs As IO.FileStream = fileInf.OpenRead()
Dim strm As IO.Stream = reqFTP.GetRequestStream()
contentLen = fs.Read(buff, 0, buffLength)
While Not (contentLen = 0)
strm.Write(buff, 0, contentLen)
contentLen = fs.Read(buff, 0, buffLength)
End While
strm.Close()
fs.Close()
Next
有了這個代碼,我通過一個上傳一個文件,但總花費的時間是太大了。
我如何減少花費總時間?
我曾想過用線程來做或異步上傳文件,但我找不到任何如何做的例子。
謝謝!
喜彼得,謝謝您對我們ansker。我正在處理這個問題,現在我有更好的結果。我已經用'w.prowx = new WebProxy()'設置了一個空的代理證書,並且我已經用'System.Net.ServicePointManager.DefaultConnectionLimit = 30'將最大連接數設置爲30我仍在使用它! – user2862734