a亚洲精品_精品国产91乱码一区二区三区_亚洲精品在线免费观看视频_欧美日韩亚洲国产综合_久久久久久久久久久成人_在线区

首頁 > 編程 > C# > 正文

C# Winform下載文件并顯示進度條的實現(xiàn)代碼

2020-01-24 02:38:56
字體:
供稿:網(wǎng)友

方法一:

效果如下圖所示:

代碼如下:

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 = "當(dāng)前補丁下載進度" + percent.ToString() + "%";     System.Windows.Forms.Application.DoEvents(); //必須加注這句代碼,否則label1將因為循環(huán)執(zhí)行太快而來不及顯示信息    }    so.Close();    st.Close();   }   catch (System.Exception)   {    throw;   }  } }}

實現(xiàn)方法二:

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.VeVB.COm/update.zip", @"F:update.zip", ProgressBar_Value, null);}
發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 久久综合电影 | 国产成人在线不卡 | 爱爱无遮挡| 天天草天天色 | 欧美亚洲一区二区三区 | 中文字幕在线观看免费视频 | 久久99精品久久久久久琪琪 | 99视频这里有精品 | 日韩国产欧美视频 | 人善交video另类hd国产片 | aa级毛片毛片免费观看久 | 亚洲综合精品 | av中文字幕在线播放 | 欧美在线视频一区二区 | 欧美日韩亚洲一区 | 亚洲国产精品精华液网站 | 国产日韩视频 | 中文字幕丝袜 | 欧美自拍视频在线观看 | 欧美涩涩网 | 日本免费一二区 | 久国久产久精永久网页 | 久久aⅴ国产欧美74aaa | 欧美在线a| 欧美日韩中文在线 | 国产精品片aa在线观看 | 六月婷婷综合 | 亚洲一区二区三区在线免费观看 | 欧美在线a | 国产精品无码专区在线观看 | 自拍视频在线播放 | 久久久资源 | 国产精自产拍久久久久久 | www.日韩| 99九九久久 | www.91在线 | 日韩一区二区不卡 | 国产高清在线观看 | 美女国产精品 | 久久精品国产免费 | 影视在线观看 |