вторник, 9 января 2018 г.

Рекурсивный обход папок

'Создаём и запускаем диалог выбора корневой папки
Set objShell = CreateObject("Shell.Application")
Set objFolder = objShell.BrowseForFolder(0, "Select a folder:", 0)
'Если пользователь не выбрал папку, завершаем приложение
If objFolder Is Nothing Then Wscript.Quit
'Получаем путь к выбранной папке
objPath = objFolder.Self.Path
'Создаем объект папки файловой системы
'и отправляем его в рекурсивную функцию
Set FSO = CreateObject("Scripting.FileSystemObject")
ShowSubFolders FSO.GetFolder(objPath)
'Сигнализируем о завершении программы
Wscript.Echo "Завершено в " & objPath
'Функция рекурсивного обхода папок
Sub ShowSubFolders(Folder)
'Перебираем подпапки
 For Each Subfolder in Folder.SubFolders
'В каждой подпапке Subfolder делаем нужное нам черное дело
'Например, выводим её имя
   Wscript.Echo Subfolder.Name
'Рекурсивно вызываем функцию для подпапок текущей папки
   ShowSubFolders Subfolder
  Next
End Sub

Комментариев нет:

Отправить комментарий