Set FSO = CreateObject("Scripting.FileSystemObject")
If FSO.FolderExists(FileName) Then
On Error Resume Next
C = FSO.GetFolder(FileName).Size
If Err.Number = 0 And C > 0 Then
On Error Goto 0
Dim Count : ForFolder FileName : C = C/Count
If C >= 1073741824 Then
C = C/1073741824 : S = "Гб"
ElseIf C >= 1048576 Then C = C/1048576 : S = "Mб"
ElseIf C >= 1024 Then C = C/1024 : S = "Кб"
Else : S = "байт" : C = Round(C, 0) : A = Right(C, 1)
If Left(Right(C, 2), 1) <> 1 And (A > 1 And A < 5) Then S = "байта"
End If : C = Replace(Round(C, 3), ",", " ") : N = InStrRev(C, " ")
If N > Len(C) - 3 Then C = Left(C, N) & Left(Mid(C, N + 1) & "00", 3)
Content = C & " " & S
End If
End If : Set FSO = Nothing
Sub ForFolder(Folder)
Set Folder = FSO.GetFolder(Folder)
Count = Count + Folder.Files.Count
For Each F In Folder.SubFolders : ForFolder F : Next
End Sub |