2012-05-18 25 views
4

我正在從ftp服務器上拖動一個文件,並且在驗證傳輸成功完成的驗證方法方面感到不舒服。如何判斷文件傳輸何時完成(服務器到客戶端)

感覺就像必須有一個更具體的方式來檢測成功的轉移。有任何想法嗎?

我的代碼:

  var request = (FtpWebRequest)FtpWebRequest.Create(ftpFilePath); 

      request.KeepAlive = false; 
      request.UseBinary = true; 
      request.UsePassive = false; 
      request.Credentials = new NetworkCredential("Username", "Password"); 
      request.Method = WebRequestMethods.Ftp.DownloadFile; 

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

      using (var stream = response.GetResponseStream()) 
      { 
       using (var reader = new StreamReader(stream)) 
       { 
        contents = reader.ReadToEnd(); 
       } 
      } 

      //Check to see if transfer was successful 
      if (response.StatusDescription.StartsWith("2")) 
       transferSuccessful = true; 

回答

5

檢查FtpWebResponse.StatusCode成功。例如FtpStatusCode.ClosingData

+0

雖然傳輸後FtpWebResponse.StatusCode結果在FtpStatusCode.ClosingData中。 – Khan

+0

哦!但是看起來很好。我剛剛閱讀了狀態碼摘要:*指定服務器正在關閉數據連接,並且所請求的文件操作已成功。* – Khan

+1

如果您在答案中將FtpStatusCode.CommandOK更改爲FtpStatusCode.ClosingData,我會接受它。 – Khan

相關問題