私はVBにかなり慣れていないので、特定のルーチンを実行する方法を見つけようとしています. 特定のドライブ上のすべてのディレクトリが入力されたチェックリスト ボックスを持つアーカイブ プログラムを作成しています。ユーザーがディレクトリをチェックすると、ディレクトリのサイズを取得してフォームに表示する for ループに入ります。しかし、私が抱えている問題は、4つまたは5つ以上を選択し始めると、すべてのチェック項目を読み取ってファイルサイズを検証しているため、ますます遅くなることです。最後の項目をチェックまたはチェック解除して、現在のサイズを加算/減算できるようにする方法はありますか? これは、チェックされたすべての項目をループする現在のコードです。前もって感謝します。
Dim fsize As Long = 0
Private Sub chklstbxWorkspace_SelectedIndexChanged(sender As Object, e As EventArgs) Handles chklstbxWorkspace.SelectedIndexChanged
Dim entry As Object
If chklstbxWorkspace.CheckedIndices.Count > 0 Then
btnStartArchive.Enabled = True
Else
btnStartArchive.Enabled = False
End If
lblWorkspaceSize.Text = chklstbxWorkspace.CheckedIndices.Count.ToString & " folders selected."
For Each entry In chklstbxWorkspace.CheckedItems
fsize += DirectorySize("w:\" & entry.ToString, True)
lblWorkspaceSize.Text = chklstbxWorkspace.CheckedIndices.Count.ToString & " folders selected. " & Format(fsize, "###,###,###,###,##0") & " bytes."
Next
Application.DoEvents()
End Sub