| Public Function CalcSize(ByVal sDir As String) As Long
If Right(sDir, 1) <> "\" Then
sDir = sDir & "\"
End If
Dim sFile As String
Dim colDirs As Collection
Set colDirs = New Collection
sFile = Dir(sDir, vbDirectory + vbHidden + vbSystem)
Do Until sFile = ""
If sFile <> "." And sFile <> ".." Then
If GetAttr(sDir & sFile) And vbDirectory Then
colDirs.Add sDir & sFile & "\"
Else
CalcSize = CalcSize + FileLen(sDir & sFile)
End If
End If
Debug.Print sFile
sFile = Dir()
Loop
While colDirs.Count > 0
CalcSize = CalcSize + CalcSize(colDirs.Item(1))
colDirs.Remove 1
Wend
Set colDirs = Nothing
End Function
|