Параметр create имеет значение в том случае, когда открываемый файл физически не существует. Если create равно true, то этот файл создастся, если же в качестве значения create указано false или параметр create опущен, то файл создаваться не будет.
Числовой параметр format определяет формат открываемого файла (табл. 5.6).
Таблица 5.6. Параметр format
| Константа | Значение | Описание |
|---|---|---|
TristateUseDefault |
-2 | Файл открывается в формате, используемом системой по умолчанию |
TristateTrue |
-1 | Файл открывается в формате Unicode |
TristateFalse |
0 | Файл открывается в формате ASCII |
Для дальнейшей работы с открытым файлом, т.е. для записи или чтения информации, нужно использовать методы объекта TextStream.
В следующем примере с помощью метода OpenTextFile текстовый файл открывается в режиме добавления информации (листинг 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 можно получить доступ к свойствам заданного локального или сетевого диска. Создается объект 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 |
Содержит метку тома для диска. Доступно для чтения и записи |