Ciò che mi è venuto in mente a primo impatto è:
codice:
Function RecursiveFilesCount(ByVal d As System.IO.DirectoryInfo) As List(Of String) Dim l As New List(of String)
For Each fileX As IO.FileInfo In d.GetFiles("*.*", IO.SearchOption.TopDirectoryOnly)
l.add(New String(filex.FullName.ToString))
Next
For Each dir As IO.DirectoryInfo In d.GetDirectories
Try
l += RecursiveFilesCount(dir) 'Mi sa che non posso aggiungere elementi cosi alla lista però provo e correggerò :D
Catch ex As UnauthorizedAccessException
End Try
Next
Return l...
End Function
Non ho ancora fatto le prove ma dovrebbe andare giusto??
Poi creo un'altro "for each" dove dico che per ogni elemento stringa presente nella lista "l" provo ad eliminare il file... cioè:
codice:
For Each delfile As String In l.length
Try
System.Io.File.Delete(delfile.ToString)
ProgressBarX.Value = ProgressBarX.Value + 1
Catch Ex as Exteption
Console.WriteLine(Ex.Message)
End Try
Next
NB: Ovviamente il valore di ProgressBar.Maximum lo ricavo alla fine della funzione contanto gli elementi contenuti nella lista "l"