gpt4 book ai didi

c# - 在可重启模式下以编程方式在多个 block 中并行下载文件

转载 作者:可可西里 更新时间:2023-11-01 09:14:59 24 4
gpt4 key购买 nike

我需要通过非常慢的网络连接使用 HTTP 协议(protocol)下载一个大文件。手动执行时,下载速度有时慢得令人无法忍受,而且进程有时会卡住或终止。

对于手动下载,使用下载管理器(例如 FDM )可以大大改善这种情况——这类程序在大约十年前是不可或缺且非常流行的,但如今由于更好的应用程序,其使用量迅速减少和更快的可用网络——它从不同位置开始以 block 的形式并行启动同一文件的多个下载 session ,自动重新启动失败或过时的 session ,实现工作平衡(在成功下载一个 block 后,拆分一些仍在下载的剩余 block 分为两个 session ),并最终将所有下载的 block 拼接成一个完整的单个文件。总的来说,它允许在连接不佳的情况下使文件下载更可靠和更快。

现在我正尝试在 C# 中实现相同的下载行为以实现自动无人值守下载。我在 .NET 框架中看不到任何现有的类来实现它,所以我正在寻找如何手动实现它的建议(可能借助于一些开源 .NET 库)。

最佳答案

这可以使用 HttpWebRequest.AddRange 方法实现,该方法允许您从特定范围获取文件的字节数。因此,当文件存在时,读取字节数并将其传递给 HttpWebRequest.AddRange。在 Codeproject 查看代码示例:

http://www.codeproject.com/Tips/307548/Resume-Suppoert-Downloading

有关传递不同类型范围的其他信息,请参阅:http://msdn.microsoft.com/en-us/library/4ds43y3w.aspx

关于c# - 在可重启模式下以编程方式在多个 block 中并行下载文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18022920/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com