110,534
社区成员
发帖
与我相关
我的任务
分享
private void button1_Click(object sender, EventArgs e)
{
string[] url=File.ReadAllLines(path);
foreach (var item in url)
{
ls.Add(item);
}
backgroundWorker1.RunWorkerAsync();//这个代码是启动backgroundWorker的.
//wc = new WebClient();
//foreach (var item in ls)
//{
// string filename = Path.GetFileName(item);
// wc.DownloadFile(item, "d:\\test\\" + filename + ".jpg");
//}
}
private void backgroundWorker1_DoWork(object sender, DoWorkEventArgs e)
{
BackgroundWorker bw = sender as BackgroundWorker;
wc = new WebClient();
int i = 0;
foreach (var item in ls)
{
string filename = Path.GetFileName(item);
wc.DownloadFile(item, "d:\\test\\"+ filename+".jpg");
//不加下面的语句可以下载讲到的文件,但是加了下面语句后只能下载第一条
bw.ReportProgress((int)Math.Ceiling((double)i / ls.Count* 100));//向外界报告进度
i++;//ReportProgress要用整数ls中又不是100的数所以所以想用上面的方法转换成百分比。
}
}
private void backgroundWorker1_ProgressChanged(object sender, ProgressChangedEventArgs e)
{
progressBar1.Value = e.ProgressPercentage;
}
bw.ReportProgress((int)Math.Ceiling((double)i / ls.Count* 100));/code]这个后[code=csharp]wc.DownloadFile(item, "d:\\test\\"+ filename+".jpg");
这只能下载一个文件了。注销的话可以把ls中的文件下完