private void btnDown_Click(object sender, EventArgs e)

{

DownloadFile("http://localhost:1928/WebServer/downloader/123.rar", @"C:\123.rar", progressBar1, label1);

}

/// <summary>

/// c#,.net 下载文件

/// </summary>

/// <param name="URL">下载文件地址</param>

///

/// <param name="Filename">下载后的存放地址</param>

/// <param name="Prog">用于显示的进度条</param>

///

public void DownloadFile(string URL, string filename, System.Windows.Forms.ProgressBar prog, System.Windows.Forms.Label label1)

{

float percent = 0;

try

{

System.Net.HttpWebRequest Myrq = (System.Net.HttpWebRequest)System.Net.HttpWebRequest.Create(URL);

System.Net.HttpWebResponse myrp = (System.Net.HttpWebResponse)Myrq.GetResponse();

long totalBytes = myrp.ContentLength;

if (prog != null)

{

prog.Maximum = (int)totalBytes;

}

System.IO.Stream st = myrp.GetResponseStream();

System.IO.Stream so = new System.IO.FileStream(filename, System.IO.FileMode.Create);

long totalDownloadedByte = 0;

byte[] by = new byte[1024];

int osize = st.Read(by, 0, (int)by.Length);

while (osize > 0)

{

totalDownloadedByte = osize + totalDownloadedByte;

System.Windows.Forms.Application.DoEvents();

so.Write(by, 0, osize);

if (prog != null)

{

prog.Value = (int)totalDownloadedByte;

}

osize = st.Read(by, 0, (int)by.Length);

percent = (float)totalDownloadedByte / (float)totalBytes * 100;

label1.Text = "当前补丁下载进度" + percent.ToString() + "%";

System.Windows.Forms.Application.DoEvents();

//必须加注这句代码,否则label1将因为循环执行太快而来不及显示信息

}

so.Close();

st.Close();

}

catch (System.Exception)

{

throw;

}

}

C# Winform下载文件并显示进度条的更多相关文章

  1. Winform下载文件并显示进度条

    本来是要研究怎样判断下载完成,结果找到这个方法,可以在这个方法完成之后提示下载完成. 代码如下: using System; using System.Collections.Generic; usi ...

  2. 通过HttpUrlConnection下载文件并显示进度条

    实现效果: 核心下载块: int count = 0; URL url = new URL("http://hezuo.downxunlei.com/xunlei_hezuo/thunder ...

  3. 使用libcurl开源库和Duilib做的下载文件并显示进度条的小工具

    转载:http://blog.csdn.net/mfcing/article/details/43603525 转载:http://blog.csdn.net/infoworld/article/de ...

  4. AsyncTask用法解析-下载文件动态更新进度条

    1. 泛型 AysncTask<Params, Progress, Result> Params:启动任务时传入的参数,通过调用asyncTask.execute(param)方法传入. ...

  5. Handler实现线程之间的通信-下载文件动态更新进度条

    1. 原理 每一个线程对应一个消息队列MessageQueue,实现线程之间的通信,可通过Handler对象将数据装进Message中,再将消息加入消息队列,而后线程会依次处理消息队列中的消息. 2. ...

  6. 实现在 .net 中使用 HttpClient 下载文件时显示进度

    在 .net framework 中,要实现下载文件并显示进度的话,最简单的做法是使用 WebClient 类.订阅 DownloadProgressChanged 事件就行了. 但是很可惜,WebC ...

  7. C# WinFrom 导入Excel文件,显示进度条

    因为WINForm程序是在64位上运行如果使用另外一种快速的读取Excel的方法会报“未在本地计算机上注册“Microsoft.Jet.OLEDB.12.0”提供程序” 所以我就换了现在这种读取有点慢 ...

  8. [c#]WebClient异步下载文件并显示进度

    摘要 在项目开发中经常会用到下载文件,这里使用winform实现了一个带进度条的例子. 一个例子 using System; using System.Collections.Generic; usi ...

  9. WPF多线程下载文件,有进度条

    //打开对话框选择文件         private void OpenDialogBox_Click(object sender, RoutedEventArgs e)         {     ...

随机推荐

  1. webapp 性能优化

    webapp 不像传统页面,它生命周期更长,在手机端上,硬件环境并没有pc上那么好.所以性能的优化尤为重要. webapp的性能优化主要分为两个方面 网络请求优化 和 页面渲染优化 , 我们对于性能优 ...

  2. [网络流最大流经典][uva 11082][矩阵解压]

    题目大意 分析 #include <cstdio> #include <cstdlib> #include <cmath> #include <cstring ...

  3. js中slice(),splice(),split(),substring(),substr()的使用方法和区别

    1.slice(): Array和String对象都有 在Array中  slice(i,[j]) i为开始截取的索引值,负数代表从末尾算起的索引值,-1为倒数第一个元素j为结束的索引值,缺省时则获取 ...

  4. html的target用法

    _blank -- 在新窗口中打开链接 _parent -- 在父窗体中打开链接 _self -- 在当前窗体打开链接,此为默认值 _top -- 在当前窗体打开链接,并替换当前的整个窗体(框架页), ...

  5. .Net类型与JSON的映射关系

    首先谢谢大家的支持和关注.本章主要介绍.Net类型与JSON是如何映射的.我们知道JSON中类型基本上有三种:值类型,数组和对象.而.Net中的类型比较多.到底它们是如何映射的呢? 总体来讲,Json ...

  6. Dubbo使用详解及环境搭建

    一:Dubbo简介 Dubbo是阿里巴巴提供的开源的SOA(面向服务的体系结构)服务化治理的技术框架,据说只是一部分开源的,但一些基本的需求已经可以满足的,而且可扩展性.是一种能取代PHRPC的服务调 ...

  7. 如何让secureCRT显示Linux的颜色

    style="padding-bottom: 0px; line-height: 1.5; margin: 0px; padding-left: 0px; padding-right: 0p ...

  8. 开源轻量级移动端友好的JS地图库——leaflet学习教程

    Leaflet 是一个为建设交互性好适用于移动设备地图,而开发的现代的.开源的 JavaScript 库.代码仅有 33 KB,但它具有开发在线地图的大部分功能.Leaflet设计坚持简便.高性能和可 ...

  9. Python之路第六天,基础(8)-反射

    反射 利用字符串的形式去对象(模块)中操作(寻找/检查/删除/设置)成员(函数). Python中反射用到的4个内置函数:getattr(),setattr(),hasattr(),delattr() ...

  10. Python成长之路第二篇(2)_列表元组内置函数用法

    列表元组内置函数用法list 元组的用法和列表相似就不一一介绍了 1)def append(self, p_object):将值添加到列表的最后 # real signature unknown; r ...