中国.Net论坛--『 C#.Net 』 浏览:关于如何在下载过程中截取下载过程的方法!-...

来源:百度文库 编辑:神马文学网 时间:2024/04/28 13:39:08
关于如何在下载过程中截取下载过程的方法!
前几天有人问我这个方法,我这里说明一下。
我用的是WebClient类实现,关键是我没在FTP上实现过。不过HTTP绝对可以!
其实很简单的。
string urlString = "http://localhost/aaa/Paos.rar"; //即将要下载的文件地址
WebClient wc = new WebClient();
Stream sm = wc.OpenRead(urlString);  //将网络流读取附给一个基础流
FileStream fsm = new FileStream(@"c:\Paos.rar",FileMode.OpenOrCreate);//建立一个对应的文件流
Byte[] btyArray = new Byte[8000];//用个字节数组做缓冲区
while(sm.Read(btyArray,0,8000)>=0) //将基础流中数据写到缓冲区里
{
   fsm.Write(btyArray,0,8000); //将缓冲区的内容写到文件流里
}
sm.Close();//关闭基础流
fsm.Close();//关闭文件流

注意哦!这里的缓冲区设成8000,没有任何的意义。你也可以自己去设置一个合适的值,当然如果不小心设成100的话,你就会体会到下载速度是14400BPS的感觉。绝对的恶搞,当初我第一次测试的时候就是这个值结果一个1MB的文件居然要8分钟。而且还是本地的。