I have a listbox with directories (not local, it is over a network) listed in it.
I am trying to loop through that listbox and remove any empty directories.
However, I noticed that it just skips some empty directories.. I found that if I ran the loop 3 – 5 times it will get them all, but that isn’t very efficient.
My Loop:
Dim i As Integer
i = 0
While i < ListBox1.Items.Count
If IO.Directory.GetFiles(ListBox1.Items.Item(i), "*.*").Length = 0 Then
ListBox1.Items.RemoveAt(i)
End If
i = i + 1
End While
So I was just wondering if there is a more efficient way to check the contents of the directory or another way i could achieve this without having to run the loop multiple times.
ListBox1.Items.Countis getting reevaluated every time, making your loop get shorter as time goes on missing some items. A quick solution could be just mark which items you want to remove as you loop.(there is probably a better way, but that’s a quick solution off the top of my head)