2个进度条,用于多个文件下载

时间:2013-09-09 16:34:33

标签: vb.net download downloadfileasync

目前我有一个队列系统,它将所有链接放在下载文件中,然后逐个下载。

我一直试图做的不是1个而是2个进度条。顶部进度条将用于当前文件的进度,下面的进度条将用于整体进度,然后才能完成所有文件的下载。

我试图找到方法来解决这个问题,但我无法弄清楚我会怎么做。

我试过的是:

If Me.fileUrls.Count = 1 Then
    CProgressBarTotal.Value = Help.ProgPercent.Text
Else
    CProgressBarTotal.Value = Help.ProgPercent.Text / Me.fileUrls.Count
End If

我意识到,这不会奏效。我也想过其他方法去做,但我想不出任何事情。

有谁知道我怎么能这样做?感谢。

2 个答案:

答案 0 :(得分:0)

要有第二个进度条来跟踪下载的总字节数:

  1. 在显示下载屏幕之前,确定要下载的总字节数。这里的细节取决于下载机制,但大多数FTP和HTTP服务器将提供文件大小。如果他们不这样做,你将不得不做出合理的估计。将其存储在可访问的成员变量中。

  2. 为下载的总字节数创建一个可访问的成员变量。将此绑定到更新单个文件进度的相同例程,以便每次下载“tick”还会累积“已下载的字节数”字段以及当前文件的百分比。

    < / LI>
  3. 将总字节数绑定到“总百分比”进度条最大值。将下载的字节数绑定到进度条的位置。

  4. 对于额外点:以动态方式配置绑定,这样,如果将文件添加到下载队列(或从中删除),则实时更新要下载的总字节数和进度条相应地重新进展。

答案 1 :(得分:0)

您不需要if语句:

CProgressBarTotal.Value = (currentFileNumber / Me.fileUrls.Count + Help.ProgPercent.Text / 100 / Me.fileUrls.Count) * CProgressBarTotal.Maximum