![]() |
Рекурсивный обход папок в WSH на JS
Задача: Есть папка, в которой присутствует некоторое неограниченное количество подпапок. Надо обойти их все и вывести на экран названия.
Проблема: Сделал такой вот скрипт, который вызывает рекурсивную функцию, но почему-то он обходит дерево подпапок только до первого листа, а потом заканчивает работу в штатном режиме, без каких-либо ошибочных кодов. Подскажите, где я ошибаюсь: Код:
//объект файловой системы - "Тест" --- "1" ------ "1-1" --- "2" ------ "2-1" То скрипт отрабатывает вплоть до папки "1-1", а после этого заканчивает работу, т.е. создаётся ощущение, что не срабатывает метод seq.moveNext(). |
Вот скрипт, с подобным функционалом на VBS - надеюсь поможет разобраться
Код:
Set FSO = CreateObject("Scripting.FileSystemObject") |
Спасибо, конечно, но этот скрипт я несколько раз находил, пытаясь нагуглить решение своей проблемы. Принцип у меня тот же самый, но на JS этот способ почему-то не работает.
|
petrovre,
VBS для этих целей гораздо удобней, как вы видите - для vbscript, к примеру, не нужно объявлять массив. Больше типов данных, больше готовых примеров. Для автоматизации действий в windows подходит больше именно vbscript, имхо. Начал я c JScript, полгода поработал, потом переучился на VBS |
Вот рекурсия на VBS
Код:
AllDir = "P:\DDDDDD" ' --------- Полное имя рабочего каталога (без слэжа \ на конце) Код:
var AllDir = "P:\\dddddd"; //--------- Полное имя рабочего каталога (без слэжа \\ на конце) var F,Rezult,Folders; у меня тоже не работало. |
А ведь действительно, всё дело было в видимости переменных. Спасибо большое, megaloman! Самое обидное, что эту тонкость с видимостью я знал, но сначала решил, что ошибся где-то в алгоритме или в Enumerator и в горячке пропустил это очевидное решение.
|
Время: 06:53. |
Время: 06:53.
© OSzone.net 2001-