实现简单的网络图片批量下载器

源码下载:点我下载

 

以前上网下图片时,都是要一张一张的打开,再一张一张的另存为,感觉很麻烦!
网上也没找到适合自己的下载器,随意就自己写了一个批量下载。
毕竟学编程没多久,多写写对自己还是很有好处的,程序还有待完善~~

主要学习使用WebClient类的相关方法,以及将之前的批量重命名模块使用起来!

目前下载器主要是针对有规律且连续的网址进行下载,暂不支持html。


下载器大致的流程如下:

例如有以下几张图片
http://img1.gtimg.com/3/324/32493/3249386_550x550_0.jpg
http://img1.gtimg.com/3/324/32493/3249387_550x550_0.jpg
http://img1.gtimg.com/3/324/32493/3249388_550x550_0.jpg
...这些图片编号都是连续的

这样的话利用批量重命名模块的模板功能即可实现
模板:http://img1.gtimg.com/3/324/32493/32493##_550x550_0.jpg
范围:86 - 90
这样变生成了5张图片的网址,最后只需要使用WebClient类的相关方法来实现下载即可


WebClient类主要有两种方法实现下载,单步和异步
 - 单步方法是调用DownloadFile函数实现。
 - 异步方法是调用DownloadFileAsync函数实现,并使用了2个事件DownloadProgressChanged、DownloadFileCompleted。
   - DownloadProgressChanged事件,用于获取一个文件下载中的相关信息。
   - DownloadFileCompleted事件则是当一个文件下载完成后触发。

 

string savePath = "C:\1"
WebClient client = new WebClient();
if (Async)
{
    // 异步下载
    client.DownloadProgressChanged += new DownloadProgressChangedEventHandler(DownloadProgressChanged);
    client.DownloadFileCompleted += new AsyncCompletedEventHandler(DownloadFileCompleted);
    client.DownloadFileAsync(new Uri(url), savePath);
}
else
{
    client.DownloadFile(new Uri(url), savePath);
}


private void DownloadProgressChanged(object sender, DownloadProgressChangedEventArgs e)
{
    // 处理下载过程中
    // e.BytesReceived - 当前接受多少字节
    // e.TotalBytesToReceive - 待下载文件的大小
    // e.ProgressPercentage - 下载完成度(百分比)
}

private void DownloadFileCompleted(object sender, AsyncCompletedEventArgs e)
{
    // 处理下载完成后
}

 

下载器运行

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值