Hi, I am trying to create a personal FTP file uploader. I want the backgroundworker to report the progress of the upload, but however it doesn't report at all.
Here's the code:
I also tried
but that only reported the progress once and returned 0% as progress.
Here's the code:
Code
Imports System
Imports System.IO
Imports System.Net
Imports System.Text.RegularExpressions
Imports System.ComponentModel
Public Class Form1
'==details==
dim host As String = "ftp://nine"
dim username As String = "nine"
dim password As String = "nine"
'==details==
Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
ToolStripStatusLabel1.Text = "Idle"
End Sub
Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
OpenFileDialog1.Title = "Select your file"
OpenFileDialog1.FileName = ""
OpenFileDialog1.ShowDialog()
TextBox1.Text = OpenFileDialog1.FileName.ToString
End Sub
Private Sub Button2_Click(sender As System.Object, e As System.EventArgs) Handles Button2.Click
BackgroundWorker1.RunWorkerAsync()
End Sub
Private Sub BackgroundWorker1_DoWork(sender As System.Object, e As System.ComponentModel.DoWorkEventArgs) Handles BackgroundWorker1.DoWork
Dim req As System.Net.FtpWebRequest = DirectCast(System.Net.WebRequest.Create(host & System.IO.Path.GetFileName(OpenFileDialog1.FileName).ToString()), System.Net.FtpWebRequest)
req.Credentials = New System.Net.NetworkCredential(username, password)
req.Method = System.Net.WebRequestMethods.Ftp.UploadFile
Dim bfile() As Byte = System.IO.File.ReadAllBytes(TextBox1.Text)
Dim str As System.IO.Stream = req.GetRequestStream()
ToolStripStatusLabel1.Text = "Uploading: " & System.IO.Path.GetFileName(OpenFileDialog1.FileName).ToString()
str.Write(bfile, 0, bfile.Length)
str.Close()
str.Dispose()
End Sub
Private Sub BackgroundWorker1_ProgressChanged(sender As Object, e As System.ComponentModel.ProgressChangedEventArgs) Handles BackgroundWorker1.ProgressChanged
ToolStripProgressBar1.Value = e.ProgressPercentage
Label1.Text = e.ProgressPercentage.ToString()
End Sub
Private Sub BackgroundWorker1_RunWorkerCompleted(sender As Object, e As System.ComponentModel.RunWorkerCompletedEventArgs) Handles BackgroundWorker1.RunWorkerCompleted
ToolStripStatusLabel1.Text = "Idle"
End Sub
End ClassI also tried
Code
BackgroundWorker1.ReportProgress(prog)but that only reported the progress once and returned 0% as progress.
