Показать средний размер файлов в папках
Модераторы: d-view, Моторокер, Avada, CaptainFlint, Nik
Показать средний размер файлов в папках
Нужно чтобы в TC можно узнать в каких папках сколько в среднем занимают файлы. То есть, узнать средние значения, общий размер файлов на количество файлов. Нужно это чтобы быстро вычислить "тяжелые" папки, в которых слишком много файлов большого битрейта или несжатых файлов. Поэтому хотелось бы настроить набор колонка "Размеры папок" и там добавить такую колонку, которая это и показывает. В каких плагинах искать данную возможность, то есть где найти данную колонку?
Настройка для SCP:
[cut="script.ini"][/cut]+ вариант с байтами как в подробном виде:
[cut="MiddleSize.vbs"][/cut]либо с указанием размеров:
[cut="MiddleSize.vbs"][/cut]В обоих случаях имеет смысл установить -> (выравнивание по правому краю). Выводить через [=script.Result].
[cut="script.ini"]
Код: Выделить всё
[Script]
Section=MiddleSize
[MiddleSize]
Script=MiddleSize.vbs
ParseDirs=1[cut="MiddleSize.vbs"]
Код: Выделить всё
With CreateObject("Scripting.FileSystemObject")
If .FolderExists(FileName) Then
Set Files = .GetFolder(FileName).Files
Count = Files.Count
If Count Then
For Each F in Files
S = S + F.Size
Next : Size = " " & Round(S/Count, 0)
For i = Len(Size) To 3 Step - 3
C = " " & Mid(Size, i - 2, 3) & C
Next : Content = LTrim(C)
End If
End If
End With[cut="MiddleSize.vbs"]
Код: Выделить всё
With CreateObject("Scripting.FileSystemObject")
If .FolderExists(FileName) Then
Set Files = .GetFolder(FileName).Files
Count = Files.Count
If Count Then
For Each F in Files
S = S + F.Size
Next : C = S/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 : Content = Replace(Round(C, 3), ",", " ") & " " & S
End If
End If
End WithАвтору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
А что это и где это взять? И в каких папках положить два файла?SCP
Upd. Разобрался, большое спасибо за скрипт!
Добавлено спустя 59 минут:
И еще одно пожелание. А возможно ли сделать так, чтобы показать средний размер всех файлов в подпапках, а не только в одной папке? То есть, если в одной папке есть 4 папок с файлами внутри, то хотелось бы узнать общий средний размер всех файлов в 4 папках.
Hjkma
ОК. Нулевые и проблемные папки будут проигнорированы.
[cut="MiddleSize.vbs"][/cut]
ОК. Нулевые и проблемные папки будут проигнорированы.
[cut="MiddleSize.vbs"]
Код: Выделить всё
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
Последний раз редактировалось Flasher Чт мар 17, 2016 17:18, всего редактировалось 1 раз.
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Hjkma
Так а в чём проблема с переносом? Прописать в ini нужные строки по одному из примеров?
Так а в чём проблема с переносом? Прописать в ini нужные строки по одному из примеров?
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.