Non è tanto banale, in quanto non esiste una proprietà specifica per determinare la dimensione di una cartella, né con la classe System.IO.Directory né con la classe System.IO.DirectoryInfo.
Credo che l'unica maniera sia quella di visitare con una funzione ricorsiva la cartella e le sue sottocartelle, sommando in un totale comune la dimensione dei singoli files.
Per determinare la dimensione di un file si usa la classe System.IO.FileInfo, attraverso la proprietà Length.
Ecco un esempio funzionante:
codice:
Private Function GetDirectoryLength(ByVal d As DirectoryInfo) As Long
Dim dd As DirectoryInfo
Dim ff As FileInfo
Dim sz As Long
For Each dd In d.GetDirectories
sz += GetDirectoryLength(dd)
Next
For Each ff In d.GetFiles
sz += ff.Length
Next
Return sz
End Function
La funzione si usa così:
codice:
Imports System.IO
Private Sub Test()
Dim d As New DirectoryInfo("c:/windows")
MsgBox("La cartella " & d.ToString & " occupa " & GetDirectoryLength(d) & " bytes.")
End Sub
Ciao