Я довольно новичок в 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