Для доступа в цикле ко всем элементам коллекции Files
применяется объект Enumerator
. В качестве примера использования этого объекта в листинге 5.14 приведен сценарий ListFiles.js, выводящий на экран названия всех файлов, которые содержатся в специальной папке "Мои документы" (рис. 5.6).
Рис. 5.6.Список всех файлов в специальной папке "Мои документы"
Листинг 5.14. Построение списка файлов
/*******************************************************************/
/* Имя: 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+"\n";
//Цикл по всем файлам
for (; !Files.atEnd(); Files.moveNext())
//Добавляем строку с именем файла
s+=Files.item().Name+"\n";
//Выводим полученные строки на экран
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);
//Записываем строку в файл
F.WriteLine("Строка текста");
//Закрываем файл
F.Close();
Свойству объекта TextStream описаны в табл. 5.12.
Таблица 5.12.Свойства объекта TextStream
Свойство |
Описание |
AtEndOfLine |
Содержит true , если указатель достиг конца строки в файле, и false в противном случае. Доступно только для чтения |
AtEndOfStream |
Содержит true , если указатель достиг конца файла, и false в противном случае. Доступно только для чтения |
Column |
Содержит номер колонки текущего символа в текстовом файле. Доступно только для чтения |
Line |
Содержит номер текущей строки в текстовом файле. Доступно только для чтения |
Методы объекта TextStream
представлены в табл. 5.13.
Таблица 5.13.Методы объекта TextStream
Метод |
Описание |
Close() |
Закрывает открытый файл |
Read( n ) |
Считывает из файла n символов и возвращает полученную строку |
ReadAll() |
Считывает полностью весь файл и возвращает полученную строку |
ReadLine() |
Возвращает полностью считанную из файла строку |
Skip( n ) |
Пропускает при чтении n символов |
SkipLine() |
Пропускает целую строку при чтении |
Write( string ) |
Записывает в файл строку string (без символа конца строки) |
WriteBlankLines( n ) |
Записывает в файл n пустых строк (символы перевода строки и возврата каретки) |
WriteLine( [string] ) |
Записывает в файл строку string (вместе с символом конца строки). Если параметр string опущен, то в файл записывается пустая строка |
В листинге 5.15 приведен сценарий TextFile.js, иллюстрирующий использование методов объекта TextStream
. В этом сценарии на диске С: создается файл TestFile.txt и в него записываются три строки, вторая из которых является пустой. После этого файл открывается для чтения и из него считывается третья строка, которая выводится на экран (рис. 5.7).
Рис. 5.7.Результат работы сценария TextFile.js
Читать дальше