本文介绍了Visual Basic e.TotalBytesToReceive始终给出-1的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
您好,我已经制作了一个可以工作的FTP下载器,但是我想在下载文件之前先获取文件大小.我使用e.TotalBytesToReceive,但它始终为我提供-1的值,而e.bytesrecived的效果很好. (我将使用这两个值来制作进度条).这是我的代码:
Hi I have made a working FTP downloader, but I want to get file size before downloading the file. I use e.TotalBytesToReceive but it always gives me the value of -1, while e.bytesrecived works very good . (I will use these 2 values to make a progressbar). Here is my code:
Imports System.Net
Public Class Download
WithEvents WebIllyria As New Net.WebClient 'WithEvents WebClient As New Net.WebClient
Private Sub Download_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Dim Uri As New Uri("ftp://[email protected]/illyria.exe")
Try
WebIllyria.Credentials = New Net.NetworkCredential("username", "password")
WebIllyria.DownloadFileAsync(Uri, "c:\illyria.exe")
Catch ex As Exception
MsgBox(ex.ToString)
End Try
End Sub
Private Sub WebIllyria_DownloadProgressChanged(ByVal sender As Object, ByVal e As System.Net.DownloadProgressChangedEventArgs) Handles WebIllyria.DownloadProgressChanged
ProgressDownload.Value = e.ProgressPercentage
Label4.Text = e.TotalBytesToReceive
Label3.Text = e.BytesReceived
Label2.Text = e.ProgressPercentage & "%"
If ProgressDownload.Value = 100 Then
MessageBox.Show("Download Completed!!")
Label2.Text = "..."
End If
End Sub
End Class
推荐答案
这篇关于Visual Basic e.TotalBytesToReceive始终给出-1的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!