2

このコードがありますが、プログレス バーを組み込むにはどうすればよいですか?

 Private Sub btn_upload_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn_upload.Click

    Dim filePath As String = lbl_file.Text
    Dim slashPosition As Integer = filePath.LastIndexOf("\")
    Dim filenameOnly As String = filePath.Substring(slashPosition + 1)


    Dim request As System.Net.FtpWebRequest = DirectCast(System.Net.WebRequest.Create("ftp://.com/public_html/windows/" & filenameOnly), System.Net.FtpWebRequest)
    request.Credentials = New System.Net.NetworkCredential("", "")
    request.Method = System.Net.WebRequestMethods.Ftp.UploadFile
    Dim path As String = lbl_file.Text

    Dim file() As Byte = System.IO.File.ReadAllBytes(path)

    Dim strz As System.IO.Stream = request.GetRequestStream()

    strz.Write(file, 0, file.Length)


    strz.Close()
    strz.Dispose()

    MsgBox(path)




End Sub
4

1 に答える 1

4

すべてのバイトを一度に読み取ってから一度にアップロードする代わりに、設定されたサイズのチャンクでバイトを読み書きし、合計バイトに基づいてパーセンテージを計算できます。簡単な例として、送信されたキロバイトごとにアップロードの進行状況を更新する方法を次に示します。

For offset as Integer = 0 to File.Length Step 1024
    ProgressBar1.Value = CType(offset * ProgressBar1.Maximum / File.Length, Integer)
    Dim chunkSize as Integer = File.Length - offset - 1
    If chunkSize > 1024 Then chunkSize = 1024
    strz.Write(file, offset, chunkSize)
Next
ProgressBar1.Value = ProgressBar1.Maximum
于 2012-05-11T18:22:48.680 に答える