gpt4 book ai didi

c# - 使用 C# 中的进度表将文件从 Web 下载到本地文件

转载 作者:行者123 更新时间:2023-11-30 13:52:57 25 4
gpt4 key购买 nike

我有一个小应用程序,可以从远程 (HTTP) 服务器下载一些文件到用户本地硬盘,有些文件很大,但我不知道运行时有多大。有什么方法可以让我下载带有某种进度表的文件吗?

这是一个 WinForms 应用程序,现在我正在使用 WebClient.DownloadFile() 下载文件。

编辑:我查看了 DownloadProgressChanged 和 OnDownloadProgressChanged 事件,它们似乎工作正常,但它们不适用于我的解决方案。我正在下载多个文件,如果我使用 WebClient.DownloadFileAsync,那么该事件会每秒调用几次,因为每个文件都会调用它。
这是应用程序的基本结构:

  • 通常下载大约 114 个文件的列表
  • 在文件列表上运行一个循环并将每个文件下载到它的目的地

我不介意单独下载每个文件,但如果不使用 DownloadFileAsync() 下载它们,我就无法使用事件处理程序。

最佳答案

使用WebClient.OnDownloadProgressChanged .请记住,只有在服务器预先报告大小的情况下才能计算进度。

编辑:

查看您的更新,您可以尝试制作 queue网址。然后,当文件完成下载(DownloadDataCompleted 事件)时,您将启动队列中下一个 URL 的异步下载。我没有测试过这个。

关于c# - 使用 C# 中的进度表将文件从 Web 下载到本地文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1108292/

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