方法一:
效果如下图所示:
代码如下:
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; namespace WinShowDown { public partial class FrmMain : Form { public FrmMain() { InitializeComponent(); } 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; } } } }
实现方法二:
WinForm下载文件并显示下载进度示例
/// <summary> /// 显示进度 /// </summary> /// <param name="val"></param> private void ProgressBar_Value(int val) { progressBar1.Value = val; label1.Text = val.ToString() + "%"; } /// <summary> /// 下载文件 /// </summary> /// <param name="url"></param> /// <param name="savefile"></param> /// <param name="downloadProgressChanged"></param> /// <param name="downloadFileCompleted"></param> private void DownloadFile(string url, string savefile, Action<int> downloadProgressChanged, Action downloadFileCompleted) { WebClient client = new WebClient(); if (downloadProgressChanged != null) { client.DownloadProgressChanged += delegate(object sender, DownloadProgressChangedEventArgs e) { this.Invoke(downloadProgressChanged, e.ProgressPercentage); }; } if (downloadFileCompleted != null) { client.DownloadFileCompleted += delegate(object sender, AsyncCompletedEventArgs e) { this.Invoke(downloadFileCompleted); }; } client.DownloadFileAsync(new Uri(url), savefile); } delegate void Action(); //.NET Framework 2.0得自定义委托Action /// <summary> /// 点击下载 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void button1_Click(object sender, EventArgs e) { DownloadFile("http://xiazai.jb51.net/update.zip", @"F:update.zip", ProgressBar_Value, null); }
本文向大家介绍Python HTTP下载文件并显示下载进度条功能的实现,包括了Python HTTP下载文件并显示下载进度条功能的实现的使用技巧和注意事项,需要的朋友参考一下 下面的Python脚本中利用request下载文件并写入到文件系统,利用progressbar模块显示下载进度条。 其中利用request模块下载文件可以直接下载,不需要使用open方法,例如: 下面的例子是题目中完整的例子
本文向大家介绍Python 给下载文件显示进度条和下载时间的实现,包括了Python 给下载文件显示进度条和下载时间的实现的使用技巧和注意事项,需要的朋友参考一下 大家在下载文件时能够显示下载进度和时间非常好,其实实现它方法很简单,这里我写了个进度条的模块,其中还附带上了运行时间也就是下载时间了。 该模块调用了三个库: 1.os 2.requests 3.time 话不多说,先上代码!!!. 实现
本文向大家介绍Android 下载文件通知栏显示进度条功能的实例代码,包括了Android 下载文件通知栏显示进度条功能的实例代码的使用技巧和注意事项,需要的朋友参考一下 1、使用AsyncTask异步任务实现,调用publishProgress()方法刷新进度来实现(已优化) 2、使用系统服务来实现(不是特别推荐此方法) 总结 以上所述是小编给大家介绍的Android 下载文件通知栏显示进度条功
问题内容: 我正在尝试使用Ajax下载文件并显示自定义 下载进度栏。 问题是我不知道该怎么做。我编写了用于记录进度的代码,但不知道如何启动下载。 注意: 文件是不同类型的。 提前致谢。 JS HTML和PHP 问题答案: 如果要向用户显示下载过程的进度条,则必须在xmlhttprequest中进行下载。这里的问题之一是,如果您的文件很大-它们将被保存 在 浏览器 的内存 中,然后浏览器会将它们写入
本文向大家介绍Retrofit+RxJava实现带进度条的文件下载,包括了Retrofit+RxJava实现带进度条的文件下载的使用技巧和注意事项,需要的朋友参考一下 项目中需要使用到更新版本,因此研究了一下Retrofit的下载文件,和进度条效果,其间也遇到了一些坑,写出来加深一下记忆,也为别的同学提供一下思路。 先说一下版本控制吧,通用做法基本上是通过接口获取服务器存储的app版本号,与应用的
本文向大家介绍基于Blod的ajax进度条下载实现示例代码,包括了基于Blod的ajax进度条下载实现示例代码的使用技巧和注意事项,需要的朋友参考一下 普通的浏览器下载 在web开发中,如果要实现下载功能,往往都是使用新开web页面或者是使用iframe的形式。实现起来其实很简单: 用户点击a标签弹出一个新页签后,或者是打开了iframe后,浏览器就会接受一个下载响应,并下载附件。其实所谓附件下载