私は自分でこれをやろうとしていましたが、助けが必要な状況に遭遇しました。プログレスバー コントロールを使用して、FTP ファイルのアップロードの現在の進行状況を表示したいと考えています。
現在、私はプログレスバー コントロールの値を手動で変更していますが、おそらくより良い、またはより単純なアプローチがあると思わずにはいられませんでした。現在は機能していますが、進行状況バーは、実行中のコードの部分に基づいて進行状況を示す点で散発的です。また、サブ全体を別のスレッドにスローしようとしましたが、それを行ったときにプログレスバーがコードの最後まで表示されないことに気付きました。その後、一時的に点滅して再び非表示になります。
これが私がこれまでに行ったことです。
Public Sub uploadAuthorization()
ProgressBar1.Show()
Dim fileName As String = Path.GetFileName(TextBoxFilePath.Text)
Dim ftpFolder As String = "authorizations"
Try
'Create FTP Request
Me.Cursor = Cursors.WaitCursor
Dim myRequest As FtpWebRequest = DirectCast(WebRequest.Create(ftpServer + "/" + ftpFolder + "/" + fileName), FtpWebRequest)
ProgressBar1.Value = 20
'Update properties
myRequest.Credentials = New NetworkCredential(ftpUsername, ftpPassword)
myRequest.Method = WebRequestMethods.Ftp.UploadFile
ProgressBar1.Value = ProgressBar1.Value + 20
'Read the file
Dim myFile As Byte() = File.ReadAllBytes(TextBoxFilePath.Text)
ProgressBar1.Value = ProgressBar1.Value + 20
'Upload the file
Dim myStream As Stream = myRequest.GetRequestStream()
myStream.Write(myFile, 0, myFile.Length)
ProgressBar1.Value = ProgressBar1.Value + 20
'Cleanup
myStream.Close()
myStream.Dispose()
ProgressBar1.Value = ProgressBar1.Value + 20
Catch ex As Exception
MsgBox(ex.Message, MsgBoxStyle.Information)
End Try
Me.Cursor = Cursors.Arrow
End Sub