Total Commander Knowledge Base

Есть вопрос?

Поищите ответ в самой большой русскоязычной базе знаний по Total Commander!

Подсчёт количества подпапок

Q: Такой вопрос: как посчитать сколько в каждой папке подпапок? Пример, есть 100 папок, мне нужно узнать сколько в этих ста папках подпапок. Если выделить эти сто папок и нажать свойства то он будет считать и подпапки и выделенные папки. Конечно можно и посчитать вручную, отняв сто, но ведь на это уходит драгоценное время!
A: Если без рекурсии (без подсчета вложенных папок во вложенных папках), то вот так:

'==================================================
' Подсчет количества вложенных папок (без рекурсии)

' В параметрах вызова из TC должно быть прописано:
' %L
'==================================================

Dim TempFile, FSO
Set TempFile =
CreateObject("Scripting.FileSystemObject").OpenTextFile(WScript.Arguments(0), 1)
Set FSO = CreateObject("Scripting.FileSystemObject")

Dim StrInFile, SF, M1
SF = 0
Do While Not TempFile.AtEndOfStream
StrInFile = TempFile.ReadLine
If FSO.FolderExists(StrInFile) Then
SF = SF + FSO.GetFolder(StrInFile).SubFolders.Count
End If
Loop
If SF > 0 Then
M1 = MsgBox("В выделенных каталогах находится" & chr(13) & SF & chr(13) & "вложенных папок", vbOKOnly + vbInformation, "Результат")
Else
M1 = MsgBox("В выделенных каталогах нет вложенных папок", vbOKOnly + vbExclamation, "Внимание!")
End If
Set TempFile = Nothing
Set FSO = Nothing
Wscript.Quit

Сохрани код в файле *.vbs, повесь файл на панель TC, в параметрах кнопки пропиши %L.

Выдели нужные папки и нажми кнопку - появится диалоговое окно с количеством вложенных папок.

Batya

A: Можно воспользоваться контентным плагином DirSizeCalc, он умеет считать количество подпапок.

Lev