王朝网络
分享
 
 
 

看到有人用 WebClient来下载, 发篇用 WebRequest 实现有进度下载的吧.

王朝c#·作者佚名  2006-12-17
宽屏版  字体: |||超大  

记得以前刚用的时候,webclient确实看着挺简单,但是实现起来,小文件是一下就下载完了.

大文件要一直下载完毕才行.

后来找了找,用 WebRequest 结合 WebResponse 可以实现 有进度提示的,下载文件..

下面是代码..是从我一个软件中提取出来的.只取关键部分说明...

=====================================================================

if(Downloading==false) //如果无文件正在下载

{

TempDown=CurrentFileName;

if(CurrentFileName==""){TempDown=b;}

WhichDown=1;

System.Threading.Thread ApcThread2=new System.Threading.Thread(new System.Threading.ThreadStart(DownFile));

ApcThread2.Start();

}

else

{

MessageBox.Show("对不起,当前正在下载文件.","提示",MessageBoxButtons.OK,MessageBoxIcon.Information);

}

##################

大概说明下,如果当前没有文件正在下载,则启动一个新线程....下载文件.. 下面是 DownFile函数的代码....

简单的地方就不做注释了.

=============================================================================

//下载块#####################################################################################################

private void DownFile()

{

if(TempDown!="")

{

if(Downloading==false) //如果无文件下载

{

long fb;

this.apc_status_1.Text="正在连接到 " + TempDown;

Downloading=true;

try

{

//====尝试URL有效性,以及初始化下载界面

WebRequest myre=WebRequest.Create(TempDown);

WebResponse mwrite=myre.GetResponse();

fb=mwrite.ContentLength;

this.apc_status_1.Text="连接成功..开始下载..";

pbar.Value=0;

pbar.Maximum=(int)fb;

pbar.Visible=true;

this.ApcList.Height=156;

//====开始下载

WebClient wc=new WebClient();

SaveFileDialog sf=new SaveFileDialog();

sf.Title="请选择文件存放的位置";

filename=CurrentFileName;

sf.FileName=filename.Substring(filename.LastIndexOf("/")+1,filename.Length-filename.LastIndexOf("/")-1);

sf.ShowDialog(this);

filename=sf.FileName;

if(filename!="")

{

Stream srm=wc.OpenRead(TempDown);

StreamReader srmer=new StreamReader(srm);

byte[] mbyte=new byte[fb];

int allbyte=(int)mbyte.Length;

int startbyte=0;

while(fb>0) //################ 循环读取文件,并显示进度.....

{

Application.DoEvents();

int m=srm.Read(mbyte,startbyte,allbyte);

if(m==0){break;}

startbyte+=m;

allbyte-=m;

pbar.Value+=m;

int a1=(int)startbyte/1024;

int a2=(int)fb/1024;

this.apc_status_1.Text="连接成功..开始下载.." + a1.ToString() + "/" + a2.ToString() + "KB";//startbyte + "/" + fb.ToString();

}

FileStream fs = new FileStream(filename,FileMode.OpenOrCreate);

fs.Write(mbyte,0,mbyte.Length);

fs.Flush();

srm.Close();

srmer.Close();

fs.Close();

this.ApcList.Height=170;

pbar.Visible=false;

this.apc_status_1.Text="文件下载完毕!";

}

}

catch(WebException exp) //如地址无效或者找不到文件

{

MessageBox.Show(exp.Message,"听啪啪 提示",MessageBoxButtons.OK,MessageBoxIcon.Information);

}

Downloading=false;

}

else

{

MessageBox.Show("对不起,当前正在下载文件.","听啪啪 提示",MessageBoxButtons.OK,MessageBoxIcon.Information);

}

}

else

{

if(WhichDown==1)

{

MessageBox.Show("当前并无文件播放.","听啪啪 提示",MessageBoxButtons.OK,MessageBoxIcon.Information);

}

else

{

MessageBox.Show("请在列表中选择好想要下载的文件.","听啪啪 提示",MessageBoxButtons.OK,MessageBoxIcon.Information);

}

}

}//下载块#####################################################################################################

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
>>返回首页<<
推荐阅读
 
 
频道精选
 
静静地坐在废墟上,四周的荒凉一望无际,忽然觉得,凄凉也很美
© 2005- 王朝网络 版权所有