最简单的方法是使用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,您可以使用它获取该类型的信息
您能澄清一下您的问题到底是什么吗?现在还不明显。 –