5

请原谅我对这个问题的无知。

我想用 C# 编写一个应用程序,它可以像DownThemAll一样从服务器下载文件。DownThemAll 似乎打开了四个到 HTTP 服务器的连接来下载相同的文件。我只是想知道是否有任何现有的库可以做到这一点。

以下是他们网站上关于此功能的引用:

DownThemAll 具有称为“多部分下载”的智能下载技术。它将文件分成多个部分,同时下载。

我还希望能够暂停/恢复下载。这是我想要的基本功能,我不一定需要一个完整的下载管理器库,但如果有一个可以做这些事情的,那么我也很想知道它们。这些文件位于由 lighttpd 托管的受密码保护的目录中,因此我还需要一些方法来验证自己。

如果没有任何我可以使用的预先存在的库,那么我应该研究哪些 .net 类可能能够做到这一点?

谢谢!

编辑:将标题改写为更合适,并添加了来自 DownThemAll 网站的引文,解释它是什么。

第二次编辑:我相信 svens 发布了迄今为止最合适的答案,尽管作为评论:/这是我的错,因为我不知道我在说什么,所以我用错了标题。他发布了一篇关于 HTTP 下载暂停/恢复的文章。它还谈到Range了我认为我应该使用的标题:

Range 标头能够在一个请求中请求多个范围,这一功能称为“多部分范围”。不要将此与分段下载混淆,几乎所有下载工具都使用分段下载来提高下载速度。这些工具声称通过打开两个或多个同时连接来提高下载速度,每个连接都请求不同范围的文件。

所以我认为我想使用范围同时下载文件的某些部分。再说一次,这可能与一次性下载文件相比没有任何优势。我会这样做并允许暂停/恢复。

多谢你们!

PS svens,继续发表评论作为答案,如果你愿意,我可以接受。

4

5 回答 5

3

请原谅将帖子发布到比基督更古老的文章,但这是:

http://www.codeproject.com/Articles/21053/MyDownloader-A-Multi-thread-C-Segmented-Download-M

似乎更接近于被问到的内容。

当前标记的“正确答案”有利于提供服务器端的部分下载例程,它以某种方式解释了 HTTP Range 标头的作用,但它不是下载客户端。

于 2013-10-02T00:20:50.217 回答
1

该类System.Net.HttpClient应该能够下载您的文件。只需从线程或线程池中调用此类,即可同时下载大量文件。

于 2009-10-12T21:05:48.457 回答
1

我同意这件事,http://www.devx.com/dotnet/Article/22533/0/page/2似乎说明了一切。

于 2009-10-12T21:43:42.730 回答
0

System.Net.WebrequestMethods.Http 命名空间是一个很好的起点。您可能想使用 Get 来下拉您想要的文件。

http://msdn.microsoft.com/en-us/library/system.net.webrequestmethods.http.aspx

于 2009-10-12T21:06:48.363 回答
0

你可以使用BITS(Background Intelligent Transfer Service)一篇好文章 更多信息 http://msdn.microsoft.com/en-us/library/aa362708(VS.85).aspx http://www.codeproject.com/KB /IP/bitsman.aspx

于 2009-10-12T21:10:13.287 回答