WPF 下载网络文件 带进度条
2024-10-12 15:02:58
使用
private void Button_Click_1(object sender, RoutedEventArgs e)
{
string url = "http://files.cnblogs.com/xe2011/WpfApplication1_webbrowser_transparent.rar";
bool b =DownloadFile(url, @"D:\Administrator\Desktop\123.7z", progressBar1, label1);
if (b)
MessageBox.Show("下载成功");
else
MessageBox.Show("下载失败");
}
public bool DownloadFile(string URL, string fileName, System.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(fileName, System.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;
}
}
附件列表
最新文章
- Windows API 设置窗口下控件Enable属性
- Appweb写法
- 【Unity3D游戏开发】基础知识之Tags和Layers (三二)[转]
- SharePoint Dialog 使用
- RedHat6.5网卡问题总结
- 对付";反盗链";
- LocalDateTime返回的是Local时间
- web.xml Attribute ";xmlns"; was already specified for element ";web-app";
- Unity 3D Framework Designing(4)——设计可复用的SubView和SubViewModel(Part 1)
- 201521123119《Java程序设计》第12周学习总结
- jquery的$(selector).each(function(index,element))和$.each(dataresource,function(index,element))的区别
- 谈谈 final finally finalize 区别
- Hadoop集群的构建和安装
- highcharts.js的时间轴折线图
- 分布式系统中 Unique ID 的生成方法
- Expm 4_2 有向无环图中的最短路径问题
- xgboost 参数
- JavaEE笔记(七)
- java 将Map拷贝到另一个Map对象当中
- vue.js 源代码学习笔记 ----- 工具方法 debug