- using
System; - using
System.Collections.Generic; - using
System.ComponentModel; - using
System.Data; - using
System.Drawing; - using
System.Text; - using
System.Windows.Forms; - using
System.Net; - using
System.IO;
- namespace
wiindowsFormsApplication - {
-
public partial class Form1 : Form -
{ -
public Form1() -
{ -
InitializeComponent(); -
this.textBox1.Text = @"http://dlsw.baidu.com/sw-search-sp/soft/8a/13598/sogou_pinyin_7.1.0.1719.1398407544.exe";//由于原作者的下载地址好似不能下载了 所以我替换了一个搜狗输入法的下载地址 "http://dl-sh-ocn-1.pchome.net/0d/bx/koomail50b8.rar"; -
}
-
WebClient webClient = new WebClient(); -
private void btn_down_Click(object sender, EventArgs e) -
{ -
-
if (webClient.IsBusy)//是否存在正在进行中的Web请求 -
{ -
webClient.CancelAsync(); -
} -
//为webClient添加事件 -
webClient.DownloadProgressChanged +=new DownloadProgressChangedE ventHandler(webClient_DownloadProgressChanged); -
webClient.DownloadFileCompleted+=new AsyncCompletedEventHandl er(webClient_DownloadFileCompleted); -
//开始下载 -
webClient.DownloadFileAsync(new Uri(this.textBox1.Text), "aa.rar"); -
} -
-
private void webClient_DownloadProgressChanged(object sender, DownloadProgressChangedE ventArgs e) -
{ -
this.progressBar1.Value = e.ProgressPercentage; -
this.lbl_pro.Text = e.ProgressPercentage.ToString() + "%"; -
this.lbl_detail.Text = string.Format("正在下载文件,完成进度{0}/{1}(字节)" -
,e.BytesReceived -
,e.TotalBytesToReceive); -
}
-
private void webClient_DownloadFileCompleted(object sender, AsyncCompletedEventArgs e) -
{ -
if (e.Cancelled) -
MessageBox.Show("下载被取消!"); -
else -
MessageBox.Show("下载完成!"); -
}
-
private void btn_cancel_Click(object sender, EventArgs e) -
{ -
this.webClient.CancelAsync(); -
this.webClient.Dispose(); -
} -
} - }
运行界面:
我在使用过程中 发现原作者未给出本地下载的格式 所以我补充下
如果是本机下载 只需要数据文件路径即可
例如 G:/a.docx
如果是局域网内下载:首先需要将下载文件所在的电脑设置共享 即共享该文件
例如 \\192.168.0.83\测试\Test.docx \\是访问共享的必备条件 192.168.0.83为服务端ip 测试为服务端共享的文件夹名称 Test.docx为需要下载的文件名称