2010-03-15 94 views
1

我需要從FTP服務器上下載文件,並對其進行一些更改並使用VB.NET將其上傳到同一FTP。如何從FTP下載文件並再次上傳

請任何幫助。謝謝。

+0

我一直在尋找類似的解決方案並通過驚人的發現了很好的代碼。檢查下面的鏈接:http://stackoverflow.com/questions/5938893/using-ftp-to-download-each-file-while-getting-the-file-list – GiorgiTBS 2016-12-12 20:00:19

回答

1
+0

這不是免費的dll。文件。我需要示例訪問直接Microsoft庫 – 2010-03-15 20:06:27

+0

該代碼是公共領域,您應該能夠從您的VB.NET應用程序訪問類。你還需要什麼? – 2010-03-15 20:17:53

+0

我嘗試從codeproject.com FTpclient.cs類,但是當我嘗試從我的FTP下載文件它給了我錯誤文件不可用或沒有訪問,並且我認爲它沒有訪問錯誤,我如何可以從ftp訪問下載文件。 謝謝 – 2010-03-16 16:09:11

0

如果你想幹脆直接重新上傳文件,只需管下載流上載流:

Dim downloadRequest As FtpWebRequest = 
    WebRequest.Create("ftp://downloadftp.example.com/source/path/file.txt") 
downloadRequest.Method = WebRequestMethods.Ftp.DownloadFile 
downloadRequest.Credentials = New NetworkCredential("username1", "password1") 

Dim uploadRequest As FtpWebRequest = 
    WebRequest.Create("ftp://uploadftp.example.com/target/path/file.txt") 
uploadRequest.Method = WebRequestMethods.Ftp.UploadFile 
uploadRequest.Credentials = New NetworkCredential("username2", "password2") 

Using downloadResponse As FtpWebResponse = downloadRequest.GetResponse(), 
     sourceStream As Stream = downloadResponse.GetResponseStream(), 
     targetStream As Stream = uploadRequest.GetRequestStream() 
    sourceStream.CopyTo(targetStream) 
End Using 

如果你需要處理的內容s ^不知何故,或者如果您需要監測的進展,或兩者兼而有之,你必須做它由一塊塊(由線或可能行,如果它是一個文本文件,你正在處理):

Dim downloadRequest As FtpWebRequest = 
    WebRequest.Create("ftp://downloadftp.example.com/source/path/file.txt") 
downloadRequest.Method = WebRequestMethods.Ftp.DownloadFile 
downloadRequest.Credentials = New NetworkCredential("username1", "password1") 

Dim uploadRequest As FtpWebRequest = 
    WebRequest.Create("ftp://uploadftp.example.com/target/path/file.txt") 
uploadRequest.Method = WebRequestMethods.Ftp.UploadFile 
uploadRequest.Credentials = New NetworkCredential("username2", "password2") 

Using downloadResponse As FtpWebResponse = downloadRequest.GetResponse(), 
     sourceStream As Stream = downloadResponse.GetResponseStream(), 
     targetStream As Stream = uploadRequest.GetRequestStream() 
    Dim buffer As Byte() = New Byte(10240 - 1) {} 
    Dim read As Integer 
    Do 
     read = sourceStream.Read(buffer, 0, buffer.Length) 
     If read > 0 Then 
      ' process "buffer" here 
      targetStream.Write(buffer, 0, read) 
     End If 
    Loop While read > 0 
End Using 

參見: