2013-01-03 44 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”组合。大多数文本编辑器会忽略此操作,并将文本显示为一个连续的行。