站内搜索
分类列表
本类阅读排行
本类推荐文章
广告
看到有人用 WebClient来下载, 发篇用 WebRequest 实现有进度下载的吧.
作者: 来源: 点击: 日期:2007-7-6 0:55:08
记得以前刚用的时候,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;
看到有人用 WebClient来下载, 发篇用 WebRequest 实现有进度下载的吧. 评论
