Коллекция 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);

/*************  Конец *********************************************/