Коллекция Folders
Коллекция Folders
Коллекция Folders содержит объекты Folder для всех подкаталогов определенного каталога. Создается эта коллекция с помощью свойства SubFolders соответствующего объекта Folder. Например, в следующем примере переменная SubFolders является коллекцией, содержащей объекты Folder для всех подкаталогов каталога C:Program Files:
var FSO, F, SubFolders;
//Создаем объект FileSystemObject
FSO=WScript.CreateObject("Scripting.FileSystemObject");
//Создаем объект Folder для каталога C:Program Files
F=FSO.GetFolder("C:\Program Files");
//Создаем коллекцию подкаталогов каталога C:Program Files
SubFolders=F.SubFolders;
Коллекция Folders (как и Drives) имеет свойство Count и метод Item. Кроме этого, у Folders есть метод Add(folderName), позволяющий создавать новые подкаталоги. В листинге 5.10 приведен сценарий MakeSubFold.js, который создает в каталоге "С:Мои документы" подкаталог "Новая папка".
Листинг 5.10. Создание нового каталога
/*******************************************************************/
/* Имя: MakeSubFold.js */
/* Язык: JScript */
/* Описание: Создание нового каталога */
/*******************************************************************/
//Объявляем переменные
var FSO, F, SubFolders;
//Создаем объект FileSystemObject
FSO=WScript.CreateObject("Scripting.FileSystemObject");
//Создаем объект Folder для каталога C:Program Files
F=FSO.GetFolder("C:\Program Files");
//Создаем коллекцию подкаталогов каталога C:Program Files
SubFolders=F.SubFolders;
// Создаем каталог C:Program FilesНовая папка
SubFolders.Add("Новая папка");
/************* Конец *********************************************/
Замечание
Напомним, что новый каталог также можно создать с помощью метода CreateFolder объекта FileSystemObject.
Для доступа ко всем элементам коллекции нужно использовать, как обычно, объект Enumerator. Например, в листинге 5.11 приведен сценарий ListSubFold.js, в котором на экран выводятся названия всех подкаталогов каталога C:Program Files (рис. 5.5).
Рис. 5.5. Список всех подкаталогов каталога C:Program Files
Листинг 5.11. Построение списка подкаталогов
/*******************************************************************/
/* Имя: ListSubFold.js */
/* Язык: JScript */
/* Описание: Получение списка всех подкаталогов заданного каталога */
/*******************************************************************/
//Объявляем переменные
var FSO,F,SFold,SubFolders,s;
//Создаем объект FileSystemObject
FSO=WScript.CreateObject("Scripting.FileSystemObject");
//Путь к каталогу
SFold="C:\Program Files";
s="Каталог "+SFold+" ";
s+="Подкаталоги: ";
//Создаем объект Folder для каталога C:Program Files
F=FSO.GetFolder(SFold);
//Создаем коллекцию подкаталогов каталога C:Program Files
SubFolders= new Enumerator(F.SubFolders);
//Цикл по всем подкаталогам
for (; !SubFolders.atEnd(); SubFolders.moveNext()) {
s+=SubFolders.item()+" "; //Добавляем строку с именем подкаталога
}
//Выводим полученные строки на экран
WScript.Echo(s);
/************* Конец *********************************************/