request = MakeConnection(uri, WebRequestMethods.Ftp.DownloadFile, username, password);
response = (FtpWebResponse)request.GetResponse();
Stream responseStream = response.GetResponseStream();
//This part of the code is used to write the read content from the server
using (StreamReader responseReader = new StreamReader(responseStream))
{
using (var destinationStream = new FileStream(toFilenameToWrite, FileMode.Create))
{
byte[] fileContents = Encoding.UTF8.GetBytes(responseReader.ReadToEnd());
destinationStream.Write(fileContents, 0, fileContents.Length);
}
}
//This part of the code is used to write the read content from the server
using (var destinationStream = new FileStream(toFilenameToWrite, FileMode.Create))
{
long length = response.ContentLength;
int bufferSize = 2048;
int readCount;
byte[] buffer = new byte[2048];
readCount = responseStream.Read(buffer, 0, bufferSize);
while (readCount > 0)
{
destinationStream.Write(buffer, 0, readCount);
readCount = responseStream.Read(buffer, 0, bufferSize);
}
}
прежних записывает содержимое в файл, но при попытке открыть файл, он говорит, что он поврежден. Но более поздняя работа отлично работает при загрузке zip-файлов. Есть ли какая-то конкретная причина, почему прежний код не работает для zip-файлов, так как он отлично работает для текстовых файлов?Zip файл поврежденные после загрузки с сервера в C#
StreamReader является TextReader. См. [Этот ответ] (http://stackoverflow.com/a/4769070/60761). –