Fork me on GitHub
断点续传下载文件

 在.net里关于用Http下载文件,有HttpWebRequest实在是简单。通常用这个组建可以轻松为自己量身定做一个类似于迅雷的下载软件,只要你舍得花这个时间。当然,你还可以从socket方面入手,因为那个比用HTTP实现更底层,操作起来更细腻。但我们现在要说的与那无关,迅雷电驴云云,这些下载软件实在是太方便了,以至于我们看起来毫无写这方面软件的必要了。但是,这方面的资料还是必须掌握一点,在很多方面都会用得着。

       当然还没说到正题,先说下实现步骤:1.监视剪切板,判断是否含有可以供下载的链接。2.建立下载任务,实时记录下载进度。 3.进度条显示进度。

先说下迅雷的下载格式:

thunder://QUFodHRwOi8veGlhemFpLnpvbC5jb20uY24vZG93bi5waHA/c29mdGlkPTExNDkyOSZzdWJjYXRpZD0zNDUmc2l0ZT0xMFpa

thunder://后面一连串的字符串是base64加密而成,因此,我们在下载迅雷协议格式的文件时,必须先解码成Unicode文本。

AAhttp://xiazai.zol.com.cn/down.php?softid=114929&subcatid=345&site=10ZZ

去掉 “AA” “ZZ”就是地址了。


复制代码
using System.IO;//引入输入输出功能
using System.Net;//网络请求
using System.Text.RegularExpressions;//用于正则表达式字符串处理
using System.Runtime.InteropServices;//引入WinAPI功能函数
using System.Threading;//处理线程
复制代码

准备一下功能函数
1.加载已经存在的INI配置文件

View Code
View Code

2.写入INI文件

View Code

好了,准备工作做完了。先建立几个全局变量。

       static string FileName = "";//记录要下载的文件名
       static long FileLength = 0; //记录文件大小
       static  int CompletedLength = 0;//记录已完成的大小

下面完成下载功能,注释里面都有。最适合初学的人看了。^!^

View Code

这就是最终的效果了。当然迅雷可不是这么简单,要达到迅雷那样的效果火候肯定是不够的。这里面有很多新手值得去学习的地方,这个代码不是我的原创,是我从网上下载后修改完成的。因为我觉得里面确实有很多可以学习鉴戒的地方,因此一时手痒供上给大家了。具体的源码在评论处会补上,欢迎大家下载~!

教程每天都更新,欢迎大家继续关注!

本文属于原创文章,转载请保持http://www.cnblogs.com/uu102的链接 如果违法上述规定,本人将保留追究转载者的权利.谢谢合作
posted on 2012-10-12 10:18  HackerVirus  阅读(192)  评论(0编辑  收藏  举报