最簡單的方法是使用DownloadFile的內置進度條,它會顯示一個帶有進度條和取消按鈕的小窗口。所有你必須添加到您的代碼如下參數:
My.Computer.Network.DownloadFile("https://www.dropbox.com/s/gg3ocih2dv3t3lg/adwcleaner_6.020.exe?dl=0", _
"C:\Users\llexl\Desktop\adwcleaner_6.020.exe", "", "", True, 500, True)
您在目標文件路徑之後看到的第一個真正的是創建進度窗口參數。
但是,如果你要查詢的文件的總大小,並得到整個下載的進度,以實現自己的進度條,過程變得更加複雜一點點。您必須創建一個事件處理程序來處理下載的進度更改事件,然後將正在接收的字節數轉換爲百分比並將該百分比應用於您的進度條...然後,您的下載代碼將顯示像:
Dim url As String = "https://www.dropbox.com/s/gg3ocih2dv3t3lg/adwcleaner_6.020.exe?dl=0"
Dim savePath As String = "C:\Users\llexl\Desktop\adwcleaner_6.020.exe"
Dim download As New WebClient()
AddHandler download.DownloadProgressChanged, AddressOf Download_ProgressChanged
download.DownloadFileAsync(New Uri(url), savePath)
而且你的進步,改變處理程序:
Public Sub Download_ProgressChanged(ByVal sender As Object, ByVal e As System.Net.DownloadProgressChangedEventArgs)
Try
ProgressBar1.Value = CInt(Math.Round((e.BytesReceived/e.TotalBytesToReceive) * 100, 0, MidpointRounding.AwayFromZero))
Catch ex As Exception
Debug.Print(ex.ToString)
End Try
End Sub
但你是否能獲取文件的總大小從downloadprogress對象取決於是在文件的頭中的數據,所以並不總是有一個從它返回的號碼。您可能需要查找一個備用函數以在下載之前獲取文件大小以用於進度百分比計算。我相信Dropbox有一個API,您可以使用它獲取該類型的信息
您能澄清一下您的問題到底是什麼嗎?現在還不明顯。 –