Параметр create
имеет значение в том случае, когда открываемый файл физически не существует. Если create
равно
true
, то этот файл создастся, если же в качестве значения create указано
false
или параметр
create
опущен, то файл создаваться не будет.
Числовой параметр format
определяет формат открываемого файла (табл. 5.6).
Таблица 5.6. Параметр format
Константа | Значение | Описание |
TristateUseDefault | – 2 | Файл
открывается в формате, используемом системой по умолчанию |
TristateTrue | – 1 | Файл открывается в формате Unicode |
TristateFalse | 0 | Файл открывается в формате ASCII |
Для дальнейшей работы с открытым файлом, т.е. для записи или чтения информации, нужно использовать методы объекта
TextStream
.
В следующем примере с помощью метода
OpenTextFile
текстовый файл открывается в режиме добавления информации (листинг 5.6).
Листинг 5.6. Добавление информации в текстовый файл
/*******************************************************************/
/* Имя: AppendFile.js */
/* Язык: JScript */
/* Описание: Добавление строки в текстовый файл */
/*******************************************************************/
//Объявляем переменные и инициализируем константы
var FSO,f,ForAppending = 8;
//Создаем объект FileSystemObject
FSO = WScript.CreateObject("Scripting.FileSystemObject");
//Открываем файл
f = FSO.OpenTextFile("C:\\TestFile.txt", ForAppending, true);
//Добавление в файл строку
f.WriteLine("Привет!");
//Закрываем файл
f.Close;
/************* Конец *********************************************/
Замечание
Мнемонические константы, используемые в качестве параметров iomode
и create
, можно не определять явным образом в сценарии, как это сделано в вышеприведенном примере, а брать из самого объекта
FileSystemObject
(точнее говоря, из библиотеки типов этого объекта). Для этого в сценариях нужно применять разметку XML (см. листинг 3.9). С помощью объекта
Drive
можно получить доступ к свойствам заданного локального или сетевого диска. Создается объект
Drive
с помощью метода
GetDrive
объекта
FileSystemObject
следующим образом:
var FSO, D;
FSO = WScript.CreateObject("Scripting.FileSystemObject");
D = FSO.GetDrive("C:");
Также объекты
Drive
могут быть получены как элементы коллекции
Drives
.
Свойства объекта
Drive
представлены в табл. 5.7; методов у этого объекта нет.
Таблица 5.7. Свойства объекта Drive
Свойство | Описание |
AvailableSpace | Содержит количество доступного для пользователя места (в байтах) на диске |
DriveLetter | Содержит букву, ассоциированную с локальным устройством или сетевым ресурсом. Это свойство доступно только для чтения |
DriveType | Содержит числовое значение, определяющее тип устройства: 0 — неизвестное
устройство; 1 — устройство со сменным носителем; 2 — жесткий диск; 3 — сетевой диск; 4 — CD-ROM; 5 — RAM-диск |
FileSystem | Содержит тип файловой системы, использующейся на диске (FAT, NTFS или CDFS) |
FreeSpace | Содержит количество свободного места (в байтах) на локальном диске или сетевом ресурсе. Доступно только для чтения |
IsReady | Содержит true , если устройство готово, и false в противном случае. Для устройств со сменными носителями и приводов CD-ROM IsReady возвращает true только в том случае, когда в дисковод вставлен соответствующий носитель и устройство готово предоставить доступ к этому носителю |
Path | Содержит путь к диску (например, " С: ", но не "С:\ ") |
RootFolder | Содержит объект Folder , соответствующий корневому каталогу на диске. Доступно только для чтения |
SerialNumber | Содержат десятичный серийный номер тома заданного диска |
ShareName | Содержит сетевое имя для диска. Если объект не является сетевым диском, то в свойстве ShareName содержится пустая строка ("") |
TotalSize | Содержит общий объем в байтах локального диска или сетевого ресурса |
VolumeName | Содержит метку тома для диска. Доступно для чтения и записи |
В листинге 5.7 приведен сценарий DriveInfo.js, в котором объект
Drive
используется для доступа к некоторым свойствам диска С: (рис. 5.3).
Рис. 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
для всех доступных дисков компьютера, в том числе для сетевых дисков и дисководов со сменными носителями.