首页 新闻 会员 周边

WebClient的OpenRead()方法下载,为什么总是下载不全?

0
悬赏园豆:10 [已关闭问题] 关闭于 2011-04-24 13:05

代码如下:

WebClient client = new WebClient();
Stream stream
= client.OpenRead("http://www.vchome.net/dotnet/dotnetdocs/dotnet37.htm");
FileStream fs
= File.Open("a.html", FileMode.Create);
using (fs)
{
using (stream)
{
while (true)
{
byte[] b = new byte[100];
int r = stream.Read(b, 0, b.Length);
fs.Write(b,
0, r);
if (r < b.Length)
{
break;
}
}
}

}
Console.WriteLine(
"ok");

上面的代码只能下载一部分,不能全部下载,为什么?

在线等。。。。。

问题补充: 当把while循环中的if代码修改成: if(r==0){break;}就可以了。 现在的问题是:为什么流还没读取完,r就可能小于b.Length呢? 而且这种小于情况还出现了好几次?!
steve.z的主页 steve.z | 初学一级 | 园豆:180
提问于:2011-04-20 21:48
< >
分享
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册