私はこのコードを使用して、ディレクトリからファイルを一覧表示します。
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
Math.Round()
これを使用したくないので、ファイルのロード中にプログレスバーにインクリメントを追加できます。タイマーを使用する必要があることはわかっていますが、慣れていません。Math.Round()
したがって、基本的に、リストボックスにファイルをロードしている間、実際のプログレスバーは表示されません。
増分計算を実行する必要はなくProgressBar
、すべてを処理します。ProgressBar1
コードでそれを使用する方法():
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
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加