Книга: Windows Script Host для Windows 2000/XP

Коллекция Drives

Коллекция Drives

Доступная только для чтения коллекция Drives содержит объекты Drive для всех доступных дисков компьютера, в том числе для сетевых дисков и дисководов со сменными носителями.

В свойстве Count коллекции Drives хранится число ее элементов, т.е. число доступных дисков.

С помощью метода Item(drivespec) можно получить доступ к объекту Drive для диска, заданного параметромdrivespec. Например:

var FSO, DriveCol, D; //Создаем объект FileSystemObject
FSO = WScript.CreateObject("Scripting.FileSystemObject");
//Создаем коллекцию имеющихся в системе дисков
DriveCol = FSO.Drives;
// Извлечение элемента коллекции (диск С:)
D = DriveCol.Item("С:");
//Вывод на экран метки тома диска С:
WScript.Echo("Диск С: имеет метку", D.VolumeName);

Для перебора всех элементов коллекции Drives нужно, как обычно, использовать объект Enumerator

В листинге 5.8 приведен файл ListDrives.js, в котором с помощью объекта Enumerator на экран выводятся сведения обо всех доступных дисках (рис. 5.4).


Рис. 5.4. Список всех дисков, имеющихся в системе

Листинг 5.8. Построение списка всех имеющихся дисков

/*******************************************************************/
/* Имя: ListDrives.js                                              */
/* Язык: JScript                                                   */
/* Описание: Получение списка всех имеющихся дисков                */
/*******************************************************************/
//Объявляем переменные
var FSO,s,ss,Drives,D;
//Создаем объект FileSystemObject
FSO = WScript.CreateObject("Scripting.FileSystemObject");
//Создаем коллекцию дисков, имеющихся в системе
Drives = new Enumerator(FSO.Drives);
s="";
//Цикл по всем дискам в коллекции
for (;!Drives.atEnd();Drives.moveNext()) {
 //Извлекаем текущий элемента коллекции
 D=Drives.item();
 //Получаем букву диска
 s+=D.DriveLetter;
 s+=" - ";
 if (D.DriveType == 3) //Проверяем, не является ли диск сетевым
  //Получаем имя сетевого ресурса
  ss=D.ShareName;
 else
  //Диск является локальным
  if (D.IsReady)  //Проверяем готовность диска
   //Если диск готов, то получаем метку тома для диска
   ss=D.VolumeName;
  else ss="Устройство не готово";
 s+=ss+"n";
}
//Выводим полученные строки на экран
WScript.Echo(s);
/*************  Конец *********************************************/

Оглавление книги


Генерация: 1.736. Запросов К БД/Cache: 3 / 0
поделиться
Вверх Вниз