简体   繁体   中英

FtpWebRequest download text file: CR/LF removed

I am using FtpWebRequest to download files, but in all text files all \\r\\n are removed when downloaded.

What am I doing wrong?

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

Your code is correct. There is something else you are not telling that causing the problem. My guess would be

  • a) File on the server does not have \\r\\n
  • b) The way how you check that it does not have them on the client is wrong. Either you are checking a wrong file, or it had gone additional transformation or something else.

I've had a similar problem to this. The code I used is almost identical to yours. I found that the code for me was actually working correctly, but the file on the server only contained the the "LF" character at the end of the line, not the "CR/LF" combo. Most text editors ignore this, and display the text as one continuous line.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM