Рис. 5.3.Свойства диска С:
Листинг 5.7. Получение свойств диска С
/*******************************************************************/
/* Имя: DriveInfo.js */
/* Язык: JScript */
/* Описание: Вывод на экран свойств диска C: */
/*******************************************************************/
//Объявляем переменные
var FSO,D,TotalSize,FreeSpace,s;
//Создаем объект FileSystemObject
FSO = WScript.CreateObject("Scripting.FileSystemObject");
//Создаем объект Drive для диска C:
D = FSO.GetDrive("C:");
s="Информация о диске C:\n";
//Получаем серийный номер диска
s+="Серийный номер: "+D.SerialNumber+"\n";
//Получаем метку тома диска
s+="Метка тома: "+D.VolumeName+"\n";
//Вычисляем общий объем диска в килобайтах
TotalSize=D.TotalSize/1024;
s+="Объем: "+TotalSize+" Kb\n";
//Вычисляем объем свободного пространства диска в килобайтах
FreeSpace=D.FreeSpace/1024;
s+="Свободно: "+FreeSpace+" Kb\n";
//Выводим свойства диска на экран
WScript.Echo(s);
/************* Конец *********************************************/
Доступная только для чтения коллекция 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);
/************* Конец *********************************************/
Объект Folderобеспечивает доступ к свойствам каталога. Создать этот объект можно с помощью свойства RootFolderобъекта Driveили методов GetFolder, GetParentFolderи GetSpecialFolderобъекта FileSystemObjectследующим образом:
var FSO, Folder;
FSO = WScript.CreateObject("Scripting.FileSystemObject");
Folder = FSO.GetFolder("С:\\Мои документы");
Также объекты Folderмогут быть получены как элементы коллекции Folders.
Свойства объекта Folderпредставлены в табл. 5.8.
Таблица 5.8.Свойства объекта Folder
| Свойство |
Описание |
Attributes |
Позволяет просмотреть или установить атрибуты каталога |
DateCreated |
Содержит дату и время создания каталога. Доступно только для чтения |
DateLastAccessed |
Содержит дату и время последнего доступа к каталогу. Доступно только для чтения |
DateLastModified |
Содержит дату и время последней модификации каталога. Доступно только для чтения |
Drive |
Содержит букву диска для устройства, на котором находится каталог. Доступно только для чтения |
Files |
Содержит коллекцию Files, состоящую из объектов Fileдля всех файлов в каталоге (включая скрытые и системные) |
IsRootFolder |
Содержит true, если каталог является корневым, и falseв противном случае |
Name |
Позволяет просмотреть и изменить имя каталога. Доступно для чтения и записи |
ParentFolder |
Содержит объект Folderдля родительского каталога. Доступно только для чтения |
Path |
Содержит путь к каталогу |
ShortName |
Содержит короткое имя каталога (в формате 8.3) |
ShortPath |
Содержит путь к каталогу, состоящий из коротких имен каталогов (в формате 8.3) |
Size |
Содержит размер всех файлов и подкаталогов, входящих в данный каталог, в байтах |
SubFolders |
Содержит коллекцию Folders, состоящую из всех подкаталогов каталога (включая подкаталоги с атрибутами "Скрытый" и "Системный") |
Type |
Содержит информацию о типе каталога |
Следующий пример показывает, как объект Folderиспользуется для получения даты создания каталога (листинг 5.9).
Читать дальше