/* Имя: TempFile.js */
/* Язык: JScript */
/* Описание: Создание временного файла со случайным именем */
/*******************************************************************/
var FSO,FileName,f,s; //Объявляем переменные
//Создаем объект FileSystemObject
FSO = WScript.CreateObject("Scripting.FileSystemObject");
//Генерируем случайное имя файла
FileName=FSO.GetTempName();
//Создаем файл и именем FileName
f = FSO.CreateTextFile(FileName, true);
//Закрываем файл
f.Close();
//Сообщаем о создании файла
WScript.Echo("Был создан файл",FileName);
/************* Конец *********************************************/
Методы MoveFile и MoveFolder
Как и при использовании методов CopyFileи CopyFolder, для перемещения нескольких файлов или каталогов в последнем компоненте параметра source можно указывать групповые символы (? и *); в параметре destination групповые символы недопустимы.
При использовании методов MoveFileи MoveFolderпроцесс перемещения прерывается после первой возникшей ошибки (как и в команде move операционной системы). Перемещать файлы и каталоги с одного диска на другой нельзя.
Числовой параметр iomode задает режим ввода/вывода для открываемого файла и может принимать следующие значения (табл. 5.5).
Таблица 5.5. Параметр iomode
| Константа |
Значение |
Описание |
ForReading |
1 |
Файл открывается только для чтения, записывать информацию в него нельзя |
ForWriting |
2 |
Файл открывается для записи. Если файл с таким именем уже существовал, то при новой записи его содержимое теряется |
ForAppending |
8 |
Файл открывается для добавления. Если файл уже существовал, то информация будет дописываться в конец этого файла |
Параметр 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).
Читать дальше