/* Язык: JScript */
/* Описание: Запись строк в текстовый файл и чтение из него */
/*******************************************************************/
var FSO,F,TextStream,s; //Объявляем переменные
//Инициализируем константы
var ForReading = 1, ForWriting = 2, TristateUseDefault = -2;
//Создаем объект FileSystemObject
FSO=WScript.CreateObject('Scripting.FileSystemObject');
//Создаем в текущем каталоге файл test1.txt
FSO.CreateTextFile('test1.txt');
//Создаем объект File для файла test1.txt
F=FSO.GetFile('test1.txt');
//Создаем объект TextStream (файл открывается для записи)
TextStream=F.OpenAsTextStream(ForWriting, TristateUseDefault);
//Записываем в файл строку
TextStream.WriteLine('Это первая строка');
//Закрываем файл
TextStream.Close();
//Открываем файл для чтения
TextStream=F.OpenAsTextStream(ForReading, TristateUseDefault);
//Считываем строку из файла
s=TextStream.ReadLine();
//Закрываем файл
TextStream.Close();
//Отображаем строку на экране
WScript.Echo('Первая строка из файла test1.txt:
',s);
/************* Конец *********************************************/
Коллекция
Коллекция Files
содержит объекты File
для всех файлов, находящихся внутри определенного каталога. Создается эта коллекция с помощью свойства Files
соответствующего объекта Folder
. Например, в следующем примере переменная Files
является коллекцией, содержащей объекты File
для всех файлов в каталоге С:Мои документы:
var FSO, F, Files;
FSO=WScript.CreateObject('Scripting.FileSystemObject');
F=FSO.GetFolder('С:\Мои документы');
Files=F.Files;
Как и рассмотренные выше коллекции Drives
и Folders
, коллекция Files
имеет свойство Count
и метод Item
.
Для доступа в цикле ко всем элементам коллекции Files
применяется объект Enumerator
. В качестве примера использования этого объекта в листинге 5.14 приведен сценарий ListFiles.js, выводящий на экран названия всех файлов, которые содержатся в специальной папке 'Мои документы' (рис. 5.6).

Рис. 5.6. Список всех файлов в специальной папке 'Мои документы'
/*******************************************************************/
/* Имя: ListFiles.js */
/* Язык: JScript */
/* Описание: Получение списка всех файлов заданного каталога */
/*******************************************************************/
//Объявляем переменные
var FSO,F,Files,WshShell,PathList,s;
//Создаем объект FileSystemObject
FSO=WScript.CreateObject('Scripting.FileSystemObject');
//Создаем объект WshShell
WshShell=WScript.CreateObject('Wscript.Shell');
//Создаем объект WshSpecialFolders
WshFldrs=WshShell.SpecialFolders;
//Определяем путь к папке 'Мои документы'
PathList=WshFldrs.item('MyDocuments')+'\';
//Создаем объект Folder для папки 'Мои документы'
F=FSO.GetFolder(PathList);
//Создаем коллекцию файлов каталога 'Мои документы'
Files=new Enumerator(F.Files);
s = 'Файлы из каталога '+PathList+'
';
//Цикл по всем файлам
for (; !Files.atEnd(); Files.moveNext())
//Добавляем строку с именем файла
s+=Files.item().Name+'
';
//Выводим полученные строки на экран
WScript.Echo(s);
/************* Конец *********************************************/
Объект
Объект TextStream
обеспечивает последовательный (строка за строкой) доступ к текстовому файлу. Методы этого объекта позволяют читать информацию из файла и записывать ее в него.
Создать объект TextStream
можно с помощью следующих методов:
? CreateTextFile
объектов FileSystemObject
и Folder
;
? OpenTextFile
объекта FileSystemObject
;
? OpenAsTextStream
объекта File
.
В следующем примере переменная F
является объектом TextStream и используется для записи строки текста в файл C:TestFile.txt:
//Создаем объект FileSystemObject
var FSOWScript.CreateObject('Scripting. FileSystemObject');
//Создаем текстовый файл
var F=FSO.CreateTextFile('C:\TestFile.txt', true);
//Записываем строку в файл