2009-12-15 64 views
6

如果我使用System.Net.FtpWebRequest將文件上傳到vsftpd服務器,是否需要使用GetResponse檢查文件是否正確上傳?或者我得到每個錯誤的例外?我應該檢查System.Net.FtpWebResponse什麼?如何檢查FtpWebRequest是否有錯誤

回答

6

呀,你想從請求對象搶FTPWebResponse對象......像這樣:

FtpWebRequest request = (FtpWebRequest)WebRequest.Create(serverUri); 
request.Method = WebRequestMethods.Ftp.UploadFile; 

FtpWebResponse response = (FtpWebResponse) request.GetResponse(); 
request.KeepAlive = false; 

byte[] fileraw = File.ReadAllBytes("CompleteLocalPath"); 

try 
{ 
    Stream reqStream = request.GetRequestStream(); 

    reqStream.Write(fileraw, 0, fileraw.Length); 
    reqStream.Close(); 
} 
catch (Exception e) 
{ 
    response = (FtpWebResponse) request.GetResponse(); 
    // Do something with response.StatusCode 
    response.Close(); 
} 

你將要檢查Ftp.WebResponse.StatusCode。

StatusCode中有相當多的成員可以返回,因此檢查它可能會非常棘手。

這裏的代碼/說明的列表可能會返回:

FtpStatusCode

編輯:如果出現錯誤的交接應該拋出一個異常,當你啓動一個流作家。你可以做的就是圍繞它做一個try-catch,如果出現問題,你將能夠得到狀態碼並將它打印出來,以便用於你正在使用的任何日誌媒體,這樣你就可以看到具體問題是什麼。我已經修改了上面的代碼以反映所有這些(僅使用一種傳輸方式,您可以使用自己的方法)。

+0

我應該檢查哪些FtpWebResponse?提供各種FTP服務器不同的結果? vsftpd可以給出什麼結果? – magol 2009-12-15 14:25:10

+0

可以檢查FtpStatusCode是否小於300? – magol 2009-12-16 09:49:31

相關問題