Я довольно новичок в VB, и я пытаюсь выяснить, как я могу сделать определенную рутину. Я пишу программу архива, у которой есть контрольный список, заполненный всеми каталогами на определенном диске. Когда пользователь проверяет каталоги, он переходит в цикл for, который захватывает размер каталога и показывает его в форме. Но проблема, с которой я столкнулась, заключается в том, что после того, как вы начнете выбирать более 4 или 5, она становится медленнее и медленнее, так как она считывает все проверенные элементы и проверяет размер файла. Есть ли метод для того, чтобы просто захватить последний элемент, отмеченный или непроверенный, поэтому я могу просто добавить/вычесть из текущего размера? Этот мой текущий код перебирает все отмеченные элементы. Заранее спасибо.folderbrowserdialog Check Space
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
спасибо. Я использовал словарь в прошлом, но никогда не думал об использовании словаря для этого. – user2202347