请原谅我对这个问题的无知。
我想用C#编写一个应用程序,它可以像DownThemAll那样从服务器上下载文件。 DownThemAll似乎打开四个连接到HTTP服务器下载相同的文件。我只是想知道是否有任何现有的库可能会这样做。
以下是他们网站关于此功能的引用:
DownThemAll采用称为“多部分下载”的智能下载技术。它将文件分成多个部分,可以同时下载。
我还希望能够暂停/恢复下载。这是我想要的基本功能,我不一定需要一个完整的下载管理器库,但如果有一个可以做这些事情,那么我也很想知道它们。这些文件位于受lighttpd托管的受密码保护的目录中,因此我还需要一些方法来验证自己。
如果没有我可以使用的任何预先存在的库,那么我应该研究哪些.net类可以做到这一点?
谢谢!
编辑:将标题重新编辑为更合适,并在DownThemAll网站上添加一条引文,说明它是什么。
第二次编辑:我认为svens到目前为止发布了最合适的答案,尽管作为评论:/这是我的错,因为我错误地标题,因为我不知道我在说什么。他发布了一个article,它通过HTTP下载暂停/恢复。它还讨论了我认为我应该使用的Range
标题:
Range标头能够在一个请求中请求多个范围,这个功能称为“多部分范围”。不要将此与分段下载混淆,几乎所有下载工具都使用分段下载来提高下载速度。这些工具声称通过打开两个或更多同时连接来提高下载速度,每个连接都请求不同范围的文件。
所以我认为我想使用该范围同时下载文件的某些部分。然后,这可能没有任何优势,只需一次下载文件。我会这样做并允许暂停/恢复。
谢谢你们!
P.S svens,请继续发表评论作为答案,以便我可以接受。如果你愿意的话。
答案 0 :(得分:3)
请原谅一篇比基督更老的文章,但是这个:
http://www.codeproject.com/Articles/21053/MyDownloader-A-Multi-thread-C-Segmented-Download-M
似乎更接近于问题。
当前标记的“正确答案”适用于提供服务器端部分下载例程,它可以解释HTTP Range标题的功能,但它不是下载客户端。
答案 1 :(得分:2)
我对此有看见, http://www.devx.com/dotnet/Article/22533/0/page/2似乎已经说明了一切。
答案 2 :(得分:1)
System.Net.HttpClient
类应该能够下载您的文件。只需从线程或线程池调用此类,您就可以同时下载大量文件。
答案 3 :(得分:0)
System.Net.WebrequestMethods.Http命名空间是一个很好的起点。您可能希望使用Get来下载所需的文件。
http://msdn.microsoft.com/en-us/library/system.net.webrequestmethods.http.aspx
答案 4 :(得分:0)
你可以使用BITS(后台智能传输服务) 好article 更多信息 http://msdn.microsoft.com/en-us/library/aa362708(VS.85).aspx http://www.codeproject.com/KB/IP/bitsman.aspx