zoukankan      html  css  js  c++  java
  • WPF 下载网络文件 带进度条

     

    使用
            private void Button_Click_1(object senderRoutedEventArgs e)
            {
                string url = "http://files.cnblogs.com/xe2011/WpfApplication1_webbrowser_transparent.rar";
                bool b =DownloadFile(url@"D:AdministratorDesktop123.7z"progressBar1label1);
                if (b)
                    MessageBox.Show("下载成功");
                else
                    MessageBox.Show("下载失败");
            }
     

            public bool DownloadFile(string URLstring fileNameSystem.Windows.Controls.ProgressBar progressBar1)
            {
                try
                {
                    System.Net.HttpWebRequest httpWebRequest1 = (System.Net.HttpWebRequest)System.Net.HttpWebRequest.Create(URL);
                    System.Net.HttpWebResponse httpWebResponse1 = (System.Net.HttpWebResponse)httpWebRequest1.GetResponse();
     
                    long totalLength = httpWebResponse1.ContentLength;
                    if (progressBar1 != null)
                    {
                        progressBar1.Maximum = (int)totalLength;
                    }
                    System.IO.Stream stream1 = httpWebResponse1.GetResponseStream();
                    System.IO.Stream stream2 = new System.IO.FileStream(fileNameSystem.IO.FileMode.Create);
                    
                    long currentLength = 0;
                    byte[] by = new byte[1024];
                    int osize = stream1.Read(by, 0, (int)by.Length);
                    while (osize > 0)
                    {
                        WpfApplication.DispatcherHelper.DoEvents();
                        
                        currentLength = osize + currentLength;
                        stream2.Write(by, 0, osize);
                        if (progressBar1 != null)
                        {
                            progressBar1.Value = (int)currentLength;
                            label1.Content = String.Format("{0} / {1}"BytesToString(currentLength), BytesToString(totalLength));
                        }
                        osize = stream1.Read(by, 0, (int)by.Length);
                    }
                    
                    stream2.Close();
                    stream1.Close();
     
                    return (currentLength == totalLength); 
                }
                catch 
                {
                    return false;
                }
            }





    附件列表

  • 相关阅读:
    功能测试用例大全
    相对最完整的软件测试工具手册
    测试用例的评审
    黑盒测试学习笔记-(深圳文鹏)
    Llinux:ubuntu常用命令(深圳文鹏)
    HDU-4857(拓扑排序)
    HDU-3665(单源最短路)
    HDU-3661(贪心)
    HDU-2059龟兔赛跑(基础方程DP-遍历之前的所有状态)
    HDU-1047(DP-二进制状态压缩)
  • 原文地址:https://www.cnblogs.com/xe2011/p/3761963.html
Copyright © 2011-2022 走看看