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

Доступ к свойствам файла

закрыть рекламу

Доступ к свойствам файла

Первый пример, который мы рассмотрим, будет посвящен работе с файловой системой. Мы напишем сценарий FileInfoWMI.js, в котором с помощью WMI будет формироваться диалоговое окно с информацией о файле C:boot.ini (рис. 11.28).


Рис. 11.28. Свойства файла C:boot.ini

Замечание

Напомним, что из сценария к файловой системе можно получить доступ с помощью стандартного объекта FileSystemObject, однако использование WMI дает возможность собрать более полную информацию.

Для доступа к файлу на диске нужно создать для этого файла объект класса DataFile схемы CIM. Как и при использовании объектов ADSI, это делается с помощью JScript-функции GetObject(), в качестве параметра которой указывается строка вида "winMgmts:Prefix_class.Property=Value", где параметр Prefix соответствует используемой схеме (CIM или Win32), Class задает имя требуемого класса, Property соответствует имени свойства класса, aValue определяет конкретное значение этого свойства. В нашем случае нужный объект (переменная File) создается следующим образом:

//Создаем объект класса CIM_DataFile для файла C:boot.ini
File=GetObject("winMgmts:CIM_DataFile.Name='С:boot.ini'")
 

После этого свойства файла извлекаются обычным образом из переменной File:

//Инициализируем символьную переменную SInfo
SInfo="Информация о файле "+File.Name+"nn";
//Извлекаем свойства файла
SInfo+="Имя:tt"+File.Name+"n";

//Определяем, доступен ли файл для чтения и записи
SInfo+="n";
if (File.Readable) SInfo+="Файл доступен для чтенияn"
else SInfo+="Файл не доступен для чтенияn";
if (File.Writeable) SInfo+="Файл доступен для записиn"
else SInfo+="Фaйл не доступен для записиn";

Сформированная символьная переменная SInfo выводится на экран с помощью метода Echo() объекта WScript:

WScript.Echo(SInfo);

Полностью текст сценария FileInfoWMI.js приведен в листинге 11.20.

Листинг 11.20. Доступ к свойствам файла с помощью WMI

/*******************************************************************/
/* Имя: FileInfoWMI.js                                             */
/* Язык: JScript                                                   */
/* Описание: Доступ к свойствам файла с помощью WMI                */
/*******************************************************************/
//Объявляем переменные
var
 File,  //Объект класса CIM_DataFile
 SInfo; //Строка для вывода на экран
//Функция для форматирования символьного представления даты
function StrDate(d) {
 var s;
 s=d.substr(6,2)+"."+d.substr(4,2)+"."+d.substr(0,4)
 return s;
}
/*************  Начало *********************************************/
//Создаем объект класса CIM_DataFile для файла C:boot.ini
File=GetObject("winMgmts:CIM_DataFile.Name='C:boot.ini'")
//Инициализируем символьную переменную SInfo
SInfo="Информация о файле "+File.Name+"nn";
//Извлекаем свойства файла
SInfo+="Имя:tt"+File.Name+"n";
SInfo+="Путь:tt"+File.Path+"n";
SInfo+="Диск:tt"+File.Drive+"n";
SInfo+="Размер:tt"+File.FileSize+"n";
SInfo+="Создан:tt"+StrDate(File.CreationDate)+"n";
SInfo+="Изменен:tt"+StrDate(File.LastModified)+"n";
SInfo+="Открыт:tt"+StrDate(File.LastAccessed)+"n";
SInfo+="Короткое имя:t"+File.EightDotThreeFileName+"n";
SInfo+="Расширение:t"+File.Extension+"n";
SInfo+="Тип:t"+File.FileType+"n";
//Определяем атрибуты файла
SInfo+="n";
SInfo+="Атрибуты:n";
if (File.Archive) SInfo+="tАрхивныйn";
if (File.Hidden) SInfo+="tСкрытыйn";
if (File.System) SInfo+="tСистемныйn";
if (File.Compressed) SInfo+="tСжат с помощью "+File.CompressionMethod+"n";
if (File.Encrypted) SInfo+="tЗашифрован с помощью "+File.EncryptionMethod+"n";
//Определяем, доступен ли файл для чтения и записи
SInfo+="n";
if (File.Readable) SInfo+="Файл доступен для чтенияn"
else SInfo+="Файл не доступен для чтенияn";
if (File.Writeable) SInfo+="Файл доступен для записиn"
else SInfo+="Файл не доступен для записиn";
//Выводим сформированную строку на экран
WScript.Echo(SInfo);
/*************  Конец *********************************************/

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


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