带进度条的下载

public long DownloadFile( string FileURL, string FileSavePath)
        {
           
long Filelength = 0 ;
           
long ThisLength = 0 ;
            HttpWebRequest req
= HttpWebRequest.Create(FileURL) as HttpWebRequest;
            req.Timeout
= 10 * 1000 ;
            req.AllowAutoRedirect
= true ;
            label1.Text
= " => 正在检测 " + FileSavePath + " ... " ;
           
try
            {
                HttpWebResponse res
= req.GetResponse() as HttpWebResponse;
                System.IO.Stream stream
= res.GetResponseStream();           
                Filelength
= res.ContentLength;
                progressBar1.Maximum
= ( int )Filelength;
               
int allk = ( int )(Filelength / 1024 );
                label1.Text
= " => 正在下载 " + FileSavePath + " ... " ;
               
byte [] b = new byte [ 1024 ];
               
int nReadSize = 0 ;
                nReadSize
= stream.Read(b, 0 , 1024 );               

                System.IO.FileStream fs
= System.IO.File.Create(FileSavePath);
               
try
                {
                   
                   
while (nReadSize > 0 )
                    {                                           
                        label1.Refresh();
                        progressBar1.Value
+= nReadSize;
                        ThisLength
+= nReadSize;
                        label1.Text
= " => 正在下载 " + FileSavePath + " ( " + ( int )(ThisLength / 1024 ) + " K/ " + allk + " K) " ;
                        fs.Write(b,
0 , nReadSize);
                        nReadSize
= stream.Read(b, 0 , 1024 );
                    }
                }                   
               
finally
                {
                    fs.Close();
                }
                progressBar1.Value
= 0 ;
                progressBar1.Maximum
= 0 ;
                label1.Text
= "" ;
                res.Close();
                stream.Close();
            }
           
catch (Exception er)
            {
               
throw er;
            }       
           
return Filelength;
        }

转载于:https://www.cnblogs.com/guodapeng/archive/2010/01/24/1655386.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值