GetDirectorySize - Evaluate disk space used by files and subdirectories
' Retrieve the number of bytes by all the files in a directory
' (it doesn't account for slack space, that is unused space in disk sectors)
'
' If INCLUDESUBDIRS is true, it recursively parses all subdirectories.
'
' supports only up to 2G directories.
Function GetDirectorySize(ByVal Path As String, Optional includeSubdirs As _
Boolean) As Long
Dim fileInfo() As Variant
Dim i As Integer
' Ensure that the path ends with a backslash
If Right(Path, 1) <> "\" Then Path = Path & "\"
' Get the list of files
fileInfo() = GetFilesInfo(Path & "*.*")
' sum size of files
For i = 1 To UBound(fileInfo, 2)
GetDirectorySize = GetDirectorySize + fileInfo(1, i)
Next
If includeSubdirs Then
' Get the list of subdirectories.
fileInfo() = GetFilesInfo(Path & "*.*", True)
' Recursive call this routine for all subdirectories
For i = 1 To UBound(fileInfo, 2)
GetDirectorySize = GetDirectorySize + GetDirectorySize(Path & _
fileInfo(0, i), True)
Next
End If
End Function