gpt4 book ai didi

c# - 当我使用 .NET WebClient DownloadFileAsync 时,我随机返回零长度文件

转载 作者:太空宇宙 更新时间:2023-11-03 13:24:30 32 4
gpt4 key购买 nike

我正在尝试从我的 FTP 服务器下载文件 - 同时下载多个文件。当我使用 DownloadFileAsync .. 返回的随机文件的 byte[] 长度为 0。我可以 100% 确认该文件存在于服务器上并且有内容并且 FTP 服务器(运行 Filezilla Server)没有错误并且说文件已经传输。

private async Task<IList<FtpDataResult>> DownloadFileAsync(FtpFileName ftpFileName)
{
var address = new Uri(string.Format("ftp://{0}{1}", _server, ftpFileName.FullName));
var webClient = new WebClient
{
Credentials = new NetworkCredential(_username, _password)
};

var bytes = await webClient.DownloadDataTaskAsync(address);
using (var stream = new MemoryStream(bytes))
{
// extract the stream data (either files in a zip OR a file);
return result;
}
}

当我尝试这段代码时,它的速度较慢(当然)但所有文件都有内容。

private async Task<IList<FtpDataResult>> DownloadFileAsync(FtpFileName ftpFileName)
{
var address = new Uri(string.Format("ftp://{0}{1}", _server, ftpFileName.FullName));
var webClient = new WebClient
{
Credentials = new NetworkCredential(_username, _password)
};

// NOTICE: I've removed the AWAIT and a different method.
var bytes = webClient.DownloadData(address);
using (var stream = new MemoryStream(bytes))
{
// extract the stream data (either files in a zip OR a file);
return result;
}
}

谁能看出我做错了什么?为什么 DownloadFileAsync 会随机返回零字节?

最佳答案

试用 FtpWebRequest/FtpWebResponse 类。您有更多的时间用于调试目的。

FtpWebRequest - http://msdn.microsoft.com/en-us/library/system.net.ftpwebrequest(v=vs.110).aspxFtpWebResponse - http://msdn.microsoft.com/en-us/library/system.net.ftpwebresponse(v=vs.110).aspx

关于c# - 当我使用 .NET WebClient DownloadFileAsync 时,我随机返回零长度文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22937675/

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