我使用的是一个简单的功能: -
while((br.Read(downbuffer, 0, downbuffer.Length)>0)
{
//Write the data in downbuffer to a file.
}
虽然它适用于文件(在zip文件下载多次测试 - http://citylan.dl.sourceforge.net/project/cric-scoreslive/v8.5-Live%20Cricket%20Scores%20Desktop%20App.zip),但当链接引用HTML文件(在http://www.mediafire.com/?rc3kj22p1tb4vi9上测试)时,它无法正常工作。使用后面的链接,它只下载和写入大约1 KB的数据,而页面大约为60 KB。 如果它与没有刷新或任何事情有关,想知道它如何处理文件下载?相关代码是:-(在一个单独的线程中运行) -
wreq = (HttpWebRequest)WebRequest.Create(uri);
wres = wreq.GetResponse();
fs = new FileStream(totalpath, FileMode.Create);
bw = new BinaryWriter(fs);
br = new BinaryReader(wres.GetResponseStream());
while((onecount=br.Read(downbuffer, 0, downbuffer.Length)>0)
{
bw.Write(downbuffer, 0, onecount);
totalcount += onecount;
}
totalpath导致文件,没什么特别的。 下行缓冲区大小为20 KB,我的网速约为60 kBps(512kbps)。
答案 0 :(得分:4)
你可以通过避免它解决整个问题:
using (var client = new WebClient())
{
client.DownloadFile(uri, totalpath);
}