winform 下载
方法一:
WebClient webClint = new WebClient();
webClint.DownloadFile(下载文件的路径,下载到本地的地址);
方法二:异步
WebClient webClint;
float maxSpeed = 0;
float currentSpeed = 0;
float lastSpeed = 0;
long lastReceive = 0;
long reeciveSpan;
TimeSpan span;
DateTime start;
DateTime lastTime;
TimeSpan useTime;
protected void Button1_Click(object sender, EventArgs e)
{
webClint.DownloadProgressChanged += new DownloadProgressChangedEventHandler(webClint_DownloadProgressChanged);
webClint.DownloadFileAsync(new Uri下载文件的路径, 下载到本地的地址);
}
void webClint_DownloadProgressChanged(object sender, DownloadProgressChangedEventArgs e)
{
span = DateTime.Now - lastTime;
lastTime = DateTime.Now;
useTime = lastTime - start;
reeciveSpan = e.BytesReceived - lastReceive;
currentSpeed = reeciveSpan * 1000 / (span.Milliseconds + 1) / 1024;
maxSpeed = currentSpeed > maxSpeed ? currentSpeed : maxSpeed;
lastSpeed = currentSpeed;
lastReceive = e.BytesReceived;
// progressBar1.Value = e.ProgressPercentage;
this.Label1.Text = "已下载: " + e.BytesReceived / 1024 + "KB\n" +
"总大小: " + e.TotalBytesToReceive / 1024 + "KB\n" +
"百分比: " + e.ProgressPercentage + "%\n" +
"当前速度: " + currentSpeed.ToString("F2") + "KB/s\n" +
"大速度: " + maxSpeed.ToString("F2") + "KB/s\n" +
"用时: " + (useTime.Minutes * 60 + useTime.Seconds) + "s";
if (e.BytesReceived == e.TotalBytesToReceive)
{
webClint.DownloadProgressChanged -= webClint_DownloadProgressChanged;
webClint.Dispose();
Response.Write("任务完成!");
webClint.Dispose();
//if (MessageBox.Show("是否关闭当前程序而立即安装?", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Exclamation) == DialogResult.Yes)
//{
// xiazai();
//}
}
}
winform 下载的更多相关文章
- winform下载网页源码
public partial class Form1 : Form{public Form1(){InitializeComponent();} private void button1_Click( ...
- C# Winform下载文件并显示进度条
private void btnDown_Click(object sender, EventArgs e) { DownloadFile("http://localhost:1928/We ...
- winform下载网页代码
1:webClient client=new WebClient(); client.Downloadstring(地址) client.Downloadfile(地址,保存路径) 2:后台线程dow ...
- Winform 下载服务器安装包并安装
代码中包含了检测本地安装盘符代码 一,定义下载委托事件(用于实现前台进度条更新和下载完成后事件的回调): private delegate void Action(); private string ...
- Winform下载文件并显示进度条
本来是要研究怎样判断下载完成,结果找到这个方法,可以在这个方法完成之后提示下载完成. 代码如下: using System; using System.Collections.Generic; usi ...
- winform 下载文件显示进度和百分比
/// <summary> /// 下载完成 /// </summary> private void DownloadFileCompleted() { IsComlate = ...
- 个人收藏--未整理—C# 上传下载文件
Winform下载文件 /// <summary> /// 下载文件 /// </summary> /// <param name="URL"> ...
- ssential Diagram for Windows FormsC#/winForm类似visio的拓扑图节点连线控件免费下载
Essential Diagram for Windows Forms是一款可扩展的.高性能的.NET平台下的拓扑图控件,可用于开发像Microsoft Visio一样的交互式地绘图和图解应用程序,在 ...
- SNF开发平台WinForm之六-上传下载组件使用-SNF快速开发平台3.3-Spring.Net.Framework
6.1运行效果: 6.2开发实现: 1.先在要使用的项目进行引用,SNF.WinForm.Attachments.dll文件. 2.在工具箱内新建选项卡->选择项,浏览找到文件SNF.WinFo ...
随机推荐
- C++找不出来的bug
1.在函数中给指针赋值时候要极其注意: 新生成的指针要么是new出来的,要么是全局的,要么是传参过来的... 就是要切记在函数局部生成一个新指针,这样的话,出了这个函数,局部的新指针所具体代表的值就被 ...
- webform ajax 异步请求
第一种就是对应方法的请求 虽然对应方法 但还是会刷新页面 webform是基于事件的 每次请求都会出发pageload <script> $(function () { $("# ...
- dataguard从库删除归档的例子
deletearchlog.sh #!/bin/sh export PATH TABLE='v$archived_log' sqlplus -silent "/ as sysdba" ...
- opencv学习之路(24)、轮廓查找与绘制(三)——凸包
一.简介 二.绘制点集的凸包 #include<opencv2/opencv.hpp> using namespace cv; void main() { //---绘制点集的凸包 Mat ...
- Linux下更新Git
查看git版本,卸载旧版本(如果没有安装git请直接到下一步) git --version yum remove git 安装依赖软件 yum install curl-devel expat-d ...
- CSS设置DIV边框为圆角,添加背景色溢出的问题
这么几天需要做一个类似于层级展示的东西,最后一层需要做一些div框来展示数据,我用css设置了div的边框为圆角,但是添加背景色的时候颜色溢出,覆盖了四个角的圆弧,效果如图所示: css代码如下: . ...
- VirtualBox运行出现“0x00000000指令引用的0x00000000内存。该内存不能为written” ,错误解决
win7 64位系统,运行virtual box 出现如下错误 错误原因:由于系统主题被破解导致的 解决办法: 1.管理员身份运行UniversalThemePatcher_1.5.22 x64,点击 ...
- python 过滤四字节字符 表情字符
项目中有时需要过滤掉四字节以上的字符(表情),比如mysql数据库5.5.3以下的版本text字段不支持四字节以上字符 于是就需要过滤掉再入库,python中的方法为: try: # pyth ...
- 【转】 VGA时序及其原理
显示器扫描方式分为逐行扫描和隔行扫描:逐行扫描是扫描从屏幕左上角一点开始,从左向右逐点扫描,每扫描完一行,电子束回到屏幕的左边下一行的起始位置,在这期间,CRT对电子束进行消隐,每行结束时,用行同步信 ...
- 【转】 pthread设置线程的调度策略和优先级
转自:https://www.cnblogs.com/tianzeng/p/9192706.html 线程的调度有三种策略:SCHED_OTHER.SCHED_RR和SCHED_FIFO.Policy ...