2013-01-03 40 views
0

我正在使用FtpWebRequest下載文件,但在所有文本文件中下載時都刪除了所有\r\nFtpWebRequest下載文本文件:刪除CR/LF

我在做什麼錯?

Uri u = new Uri(msg); 
FtpWebRequest request = (FtpWebRequest)WebRequest.Create(u); 

request.Method = WebRequestMethods.Ftp.DownloadFile; 
request.Credentials = credential; 
request.UsePassive = true; 
request.UseBinary = true; 
request.KeepAlive = false; 

//Get a reponse 
WebResponse response = request.GetResponse(); 
Stream responseStream = response.GetResponseStream(); 

FileStream localfileStream = new FileStream(destination, 
    FileMode.Create, FileAccess.Write); 
//create the file 
byte[] buffer = new byte[1024]; 
int bytesRead = responseStream.Read(buffer, 0, 1024); 

while (bytesRead != 0) 
{ 
    localfileStream.Write(buffer, 0, bytesRead); 
    bytesRead = responseStream.Read(buffer, 0, 1024); 
} 

localfileStream.Close(); 
response.Close(); 
responseStream.Close();. 
+1

您是否已驗證服務器上的文件中是否存在換行符? –

+0

你如何確定客戶端上的換行符不存在? –

回答

0

您的代碼是正確的。還有其他的東西你沒有告訴導致這個問題。我的猜測是

  • 一)在服務器上的文件不具有\r\n
  • b)您如何檢查它並沒有對他們的客戶是錯誤的方式。要麼你正在檢查一個錯誤的文件,或者它已經進行了額外的轉換或其他的東西。
0

我遇到類似的問題。我使用的代碼與您的代碼幾乎完全相同。我發現我的代碼實際上工作正常,但服務器上的文件只包含行尾的「LF」字符,而不是「CR/LF」組合。大多數文本編輯器會忽略此操作,並將文本顯示爲一個連續的行。