gpt4 book ai didi

c# - C# 中的 FTP 返回损坏的文件,为什么?

转载 作者:行者123 更新时间:2023-11-30 13:43:04 25 4
gpt4 key购买 nike

我有这种使用 FTP 服务器传输文件的方法:

private void TransferNeededFiles(IEnumerable<string> filenames)
{
foreach (var filename in filenames)
{
var request = WebRequest.Create(new Uri(@"ftp://{0}/{1}".Fill(Config.ServerUri, filename))) as FtpWebRequest;

if (request != null)
{
request.Credentials = new NetworkCredential(Config.Username, Config.Password);

request.Method = WebRequestMethods.Ftp.DownloadFile;
using (var streamReader = new StreamReader(request.GetResponse().GetResponseStream()))
{
var fileStream = new FileStream(@"{0}/{1}".Fill(Config.DestinationFolderPath, filename), FileMode.Create);

var writer = new StreamWriter(fileStream);
writer.Write(streamReader.ReadToEnd());
writer.Flush();
writer.Close();

fileStream.Close();
}
}
}
}

包含在文件名列表中的 .gz 文件总是损坏的。当我尝试使用 Windows 资源管理器从 ftp 复制时,文件没有损坏。你知道发生了什么吗?

最佳答案

问题是这一行:

writer.Write(streamReader.ReadToEnd());

StreamReader.ReadToEnd() 返回一个 Unicode 编码的字符串。您想要一个字节一个字节地读取流的东西。

关于c# - C# 中的 FTP 返回损坏的文件,为什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1156036/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com