WebClient下载文件展示进度条

16 篇文章 1 订阅
13 篇文章 0 订阅
using System;
using System.ComponentModel;
using System.IO;
using System.Net;
using System.Windows.Forms;

namespace WebClientDownFile
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void BtnDown_Click(object sender, EventArgs e)
        {
            string url = "https://fishc.com.cn/ucenter/data/avatar/000/00/00/09_avatar_middle.jpg";//需要下载的文件
            string fileExt = Path.GetExtension(url);//文件格式
            string path = Application.StartupPath + $"\\Files\\{DateTime.Now.ToString("yyyyMMddHHmmss")}{fileExt}";//保存到本地的目录
            DownFile(url, path);//下载文件
        }
        private void DownFile(string url, string fileName)
        {
            try
            {
                WebClient client = new WebClient();//实例化webclient
                client.DownloadFileCompleted += Client_DownloadFileCompleted;//下载完文件触发此事件
                client.DownloadProgressChanged += Client_DownloadProgressChanged;//下载进度变化触发事件
                client.DownloadFileAsync(new Uri(url), fileName);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
        //下载进度变化触发事件
        private void Client_DownloadProgressChanged(object sender, DownloadProgressChangedEventArgs e)
        {
            this.progressBar1.Minimum = 0;//进度条最小值
            this.progressBar1.Maximum = (int)e.TotalBytesToReceive;//下载文件的总大小
            this.progressBar1.Value = (int)e.BytesReceived;//已经下载的大小
            this.lblPercent.Text = e.ProgressPercentage + "%";//更新界面展示
        }
        //下载完文件触发此事件
        private void Client_DownloadFileCompleted(object sender, AsyncCompletedEventArgs e)
        {
            if (e.UserState == null)
            {
                this.lblMessage.Text = "下载完成";
            }
        }
    }
}

详尽 的注释。。。。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

你懂的11

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值