FtpWebRequest下载文本文件:CR / LF已删除

时间:2013-01-03 19:10:50

标签: c# ftpwebrequest

我使用FtpWebRequest下载文件,但在所有文本文件中,所有\r\n在下载时都会被删除。

我做错了什么?

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();. 

2 个答案:

答案 0 :(得分:0)

您的代码是正确的。还有一些你没有说出导致问题的原因。我的猜测是

  • a)服务器上的文件没有\r\n
  • b)如何检查客户端上没有它们的方式是错误的。您要么检查错误的文件,要么已经进行了额外的转换或其他内容。

答案 1 :(得分:0)

我遇到过类似的问题。我使用的代码与您的代码几乎完全相同。我发现我的代码实际上工作正常,但服务器上的文件只包含行尾的“LF”字符,而不是“CR / LF”组合。大多数文本编辑器忽略了这一点,并将文本显示为一个连续的行。