Reputation: 153
I use this code to list files from directory :
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
rslts = New List(Of String)
foo(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData))
ListBox1.Items.Clear()
ListBox1.Items.AddRange(rslts.ToArray)
End Sub
Dim rslts As List(Of String)
Private Sub foo(ByVal aDir As String)
Try
Dim di As New IO.DirectoryInfo(aDir)
Dim aryFiles() As IO.FileInfo = di.GetFiles("*.*")
Dim aryDirs() As IO.DirectoryInfo = di.GetDirectories()
For Each fi As IO.FileInfo In aryFiles
rslts.Add(fi.FullName)
Next
For Each d As IO.DirectoryInfo In aryDirs
foo(d.FullName)
Next
Catch ex As Exception
End Try
End Sub
I wan't to use Math.Round()
with this so I can add increment to progressbar while loading files.I know I need to use timer,but I am not familiar with Math.Round()
So basically,I wan't real progressbar while loading files into listbox.
Upvotes: 0
Views: 213
Reputation:
You don't need to perform the increment calculations, ProgressBar
takes care of everything. How to use it (ProgressBar1
) with your code:
Private Sub foo(ByVal aDir As String)
Try
Dim di As New IO.DirectoryInfo(aDir)
Dim aryFiles() As IO.FileInfo = di.GetFiles("*.*")
Dim aryDirs() As IO.DirectoryInfo = di.GetDirectories()
With ProgressBar1
.Minimum = 0
.Maximum = aryFiles.Count + aryDirs.Count
.Value = 0
.Step = 1
End With
For Each fi As IO.FileInfo In aryFiles
rslts.Add(fi.FullName)
ProgressBar1.PerformStep()
Next
For Each d As IO.DirectoryInfo In aryDirs
foo(d.FullName)
ProgressBar1.PerformStep()
Next
Catch ex As Exception
End Try
End Sub
Upvotes: 1