Книга: 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);
/************* Конец *********************************************/
- Работа с файлами
- Работа со свойствами файлов
- Глава 18. Работа с файлами на диске.
- Что делать, если при установке принтера появляется сообщение Невозможно завершение операции. Подсистема печати недоступн...
- Эффективная работа с временными файлами сортировки
- Единое имя файла параметров InterBase
- Параметры конфигурационного файла InterBase
- 9.4. Права доступа к squid
- 13. Зарабатываем на своих файлах: файлообменники, загружаеми получаем процент за скачивание
- Глава 29 Доступ к канальному уровню
- 10.5. Транзакции и пути доступа меню