我尝试使用以下代码浏览直接下载链接列表。代码运行并下载第一个文件,因为它移动到第二个文件(列表中的第二个链接),它正确地创建新文件并启动下载,但停止在0字节并且不继续。
我尝试使用断点和类似的方法,并且所有数据看起来都是正确的。此外,我确认可以快速连续下载多个文件,而不会出现相关网站的任何问题。
非常感谢任何帮助,反馈或建议!
using (WebClient w = new WebClient())
{
w.DownloadFile(new Uri(downloadLinks[0]), _directory + "test");
w.DownloadFile(new Uri(downloadLinks[1]), _directory + "test1");
w.DownloadFile(new Uri(downloadLinks[2]), _directory + "test2");
w.DownloadFile(new Uri(downloadLinks[3]), _directory + "test3");
}
此外,直接下载,即使用下面的内容,工作正常。
import urllib2
threats = urllib2.urlopen("http://malc0de.com/bl/BOOT")
谢谢!
答案 0 :(得分:3)
我怀疑问题出在这一行:
w.OpenRead(s);
返回一个你永远不会关闭的Stream
。现在你可以关闭它...但是最好使用它,而不是打扰DownloadFile
调用:
using (Stream responseStream = w.OpenRead(s))
{
string content = w.ResponseHeaders["Content-Disposition"];
string filename = new ContentDisposition(content).FileName;
using (Stream fileStream = File.Create(filename))
{
responseStream.CopyTo(fileStream);
}
Console.WriteLine("Downloaded " + filename);
}