亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

WebClient異步下載文件并顯示進度

標簽:
C#

摘要

在项目开发中经常会用到下载文件,这里使用winform实现了一个带进度条的例子。

一个例子

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.IO;
using System.Linq;
using System.Net;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace Wolfy.DownLoad
{    public partial class MainFrm : Form
    {        private string _saveDir;        public MainFrm()
        {
            InitializeComponent();
            _saveDir = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "download");
        }        private void MainFrm_Load(object sender, EventArgs e)
        {            if (!Directory.Exists(_saveDir))
            {
                Directory.CreateDirectory(_saveDir);
            }

        }        private void btnDownLoad_Click(object sender, EventArgs e)
        {            string imageUrl = "http://image.3761.com/nvxing/2016022921/2016022921382152113.jpg";            
         string fileExt = Path.GetExtension(imageUrl);           
         string fileNewName = Guid.NewGuid() + fileExt;            
         bool isDownLoad = false;            s
         tring filePath = Path.Combine(_saveDir, fileNewName);            
         if (File.Exists(filePath))
            {
                isDownLoad = true;
            }            var file = new FileMessage
               {
                   FileName = fileNewName,
                   RelativeUrl = "nvxing/2016022921/2016022921382152113.jpg",
                   Url = imageUrl,
                   IsDownLoad = isDownLoad,
                   SavePath = filePath
               };            if (!file.IsDownLoad)
            {                string fileDirPath = Path.GetDirectoryName(file.SavePath);                
                            if (!Directory.Exists(fileDirPath))
                {
                    Directory.CreateDirectory(fileDirPath);
                }                try
                {
                    WebClient client = new WebClient();
                    client.DownloadFileCompleted += client_DownloadFileCompleted;
                    client.DownloadProgressChanged += client_DownloadProgressChanged;
                    client.DownloadFileAsync(new Uri(file.Url), file.SavePath, file.FileName);
                }                catch
                {

                }

            }
        }        void client_DownloadFileCompleted(object sender, AsyncCompletedEventArgs e)
        {            if (e.UserState != null)
            {                this.lblMessage.Text = e.UserState.ToString() + ",下载完成";
            }
        }        void client_DownloadProgressChanged(object sender, DownloadProgressChangedEventArgs e)
        {            this.proBarDownLoad.Minimum = 0;            
                this.proBarDownLoad.Maximum = (int)e.TotalBytesToReceive;           
                this.proBarDownLoad.Value = (int)e.BytesReceived;           
                this.lblPercent.Text = e.ProgressPercentage + "%";
        }
    }
}


测试

點擊查看更多內容
TA 點贊

若覺得本文不錯,就分享一下吧!

評論

作者其他優質文章

正在加載中
  • 推薦
  • 評論
  • 收藏
  • 共同學習,寫下你的評論
感謝您的支持,我會繼續努力的~
掃碼打賞,你說多少就多少
贊賞金額會直接到老師賬戶
支付方式
打開微信掃一掃,即可進行掃碼打賞哦
今天注冊有機會得

100積分直接送

付費專欄免費學

大額優惠券免費領

立即參與 放棄機會
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號

舉報

0/150
提交
取消