`
liyonghui160com
  • 浏览: 771457 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

C# Winform下载文件并显示进度条

    博客分类:
  • c#
阅读更多

 

 

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;
            }
        }
    }
}

 

 

分享到:
评论

相关推荐

    C# WinForm下载上传文件显示进度条

    在C# WinForm应用开发中,为下载和上传文件实现进度条显示是一项...通过以上步骤,我们就能在VS2010的C# WinForm应用中成功实现文件下载上传并显示进度条的功能。这不仅提升了应用的交互性,也增强了用户的使用体验。

    C# Winform下载文件并显示进度条的实现代码

    总结,C# Winform下载文件并显示进度条的实现代码是通过结合HttpWebRequest、HttpWebResponse、FileStream、ProgressBar和Label等控件,利用循环读取和写入数据来实时更新进度条和标签信息。这种方法对于需要在...

    c#winform下载上传文件显示进度条

    以上就是关于"C# WinForm下载上传文件显示进度条"这个主题的主要知识点。通过实践这些技术,你可以创建一个功能完备且用户友好的文件操作界面。在项目中,`WindowsApplication2.sln`是解决方案文件,`Windows...

    C# Winform 下载文件

    首先,你需要在Winform应用中创建一个用户界面,可以包含一个按钮,用于触发文件下载,以及可能的进度条或状态指示器来显示下载进度。以下是一个简单的UI设计示例: ```csharp private void InitializeComponent() ...

    C# winform 进度条 ProgressBar 带进度显示

    在C# Winform应用开发中,进度条控件(ProgressBar)是用户界面中不可或缺的一部分,它为用户提供关于长时间运行操作的进度反馈。本教程将详细讲解如何在Winform应用程序中创建一个带有进度显示的进度条。 首先,让...

    简单C#winform多线程委托调用进度条

    在C# WinForm应用开发中,多线程和进度条的使用是常见的需求,尤其是在执行耗时操作如文件上传、下载或大数据处理时,为了不阻塞用户界面(UI),我们通常会创建一个后台线程来执行这些任务,同时通过进度条实时反馈...

    C# Winform 弹出进度条视窗 (ProgressBar) (NEW)

    在C# Winform开发中,有时我们需要执行耗时的操作,如读取大量数据或上传文件。在这种情况下,为用户提供一个进度条(ProgressBar)是很有帮助的,它可以让用户知道程序正在运行并显示任务的进度。本教程将详细介绍...

    C# winform文件目录复制 带进度条 类似于windows

    在C# WinForm应用开发中,创建一个带有进度条的文件复制功能,可以极大地提升用户体验,使其类似于Windows操作系统中的文件复制界面。这个功能涉及到多个关键知识点,包括文件操作、线程处理、进度条控制以及用户...

    C#+WinForm+经过美化的进度条控件

    在本文中,我们将深入探讨如何使用C#和WinForm创建并美化进度条控件。进度条控件在软件开发中非常常见,它用于显示任务执行的进度,为用户提供直观的反馈。C#作为.NET框架的主要编程语言,提供了丰富的UI控件,其中...

    c# winform 自定义实现 优美的进度条包含百分比

    c# winform 自定义实现 优美的进度条包含百分比

    C# Winform 弹出进度条视窗 (ProgressBar).zip

    在C# WinForm开发中,有时我们需要执行耗时的操作,如读取大量数据或上传下载文件,这时为了提供用户友好的界面体验,我们会使用进度条(ProgressBar)来展示任务的执行进度。本教程将详细讲解如何利用...

    C#winform 自定义控件实现圆形进度条和环形进度条控件

    在C# WinForm应用开发中,自定义控件可以极大地扩展UI的表现力和功能。本项目专注于创建两种特殊的进度条控件:圆形进度条和环形进度条,这些控件适用于展示任务或进程的进度,视觉效果独特,能吸引用户注意力。通过...

    C# winform弹出式进度条

    在C# WinForm应用开发中,进度条是一个非常常见的组件,用于向用户显示某个操作的进度,提升用户体验。本文将详细讲解如何在WinForm中创建和使用弹出式进度条。 首先,我们需要了解C# WinForm的基本结构。WinForm是...

    C# Winform圆形进度条(改良版)

    在C# WinForm开发中,有时我们希望创建更具有视觉吸引力和独特性的用户界面元素,圆形进度条就是其中一种。本教程将详细讲解如何利用C#和GDI+技术实现一个改良版的圆形进度条,它不仅展示了进度,还能够在进度条内部...

    C# Winform垂直进度条控件实例含源码

    通常,进度条是用来显示某个任务的完成进度,如文件下载、数据处理等。在Windows Forms(Winform)环境中,系统自带的`ProgressBar`控件默认是水平显示的。然而,`VerticalProgressBar`控件通过重绘和自定义渲染过程...

    C# Winform 自定义进度条ProgressBar

    在C# Winform开发中,有时我们希望对系统的标准控件进行自定义...通过学习和实践这个"C# Winform 自定义进度条ProgressBar"的示例,开发者可以更好地理解Winform控件的绘制原理,并为自己的项目增添更多的个性化元素。

    简单C#winform多线程委托调用进度条!

    在C# WinForm应用开发中,多线程和进度条的使用是常见的需求,尤其是在执行耗时操作如文件读写、网络请求等时,为了不阻塞用户界面,我们会使用多线程技术。同时,为了提供用户体验,我们通常会通过进度条来显示任务...

    c#winform下载上传文件显示进度条-C#代码类资源

    本资源主要涉及如何在C# WinForm中实现文件下载和上传过程中进度条的动态显示。 首先,我们需要了解WinForm中的ProgressBar控件。ProgressBar是Windows Forms中一个可视化组件,用于表示任务的进度。它可以通过设置...

    C# Winform进度条 数据加载等待控件

    "C# Winform进度条 数据加载等待控件"就是这样一个组件,它在数据加载或执行耗时操作时提供视觉反馈,告诉用户程序仍在运行,并且预计何时会完成。 这个控件的设计原则是简单易用,开发者只需一行代码就能快速地将...

Global site tag (gtag.js) - Google Analytics