Глава 3.15. Исполняющая система JScript (продолжение)

3.15.1. Диски: объект Drive

Объект Drive обеспечивает доступ к отдельному диску компьютера. Он может быть создан методом FileSystemObject.GetDrive или получен при итерации коллекции FileSystemObject.Drives. Собственных методов этот объект не имеет.

Свойства объекта Drive
Свойство Описание
AvailableSpace Объем доступного пространства на диске.
DriveLetter Буква диска.
DriveType Тип диска.
FileSystem Тип файловой системы.
FreeSpace Объем свободного пространства на диске.
IsReady Готовность диска.
Path Путь доступа к диску.
RootFolder Корневая папка диска.
SerialNumber Серийный номер диска.
ShareName Сетевое имя диска.
TotalSize Общий объем диска.
VolumeName Метка тома.

Свойство AvailableSpace

Синтаксис: объект.AvailableSpace
Атрибуты:  { DontEnum, DontDelete, ReadOnly }

Свойство AvailableSpace возвращает объем дискового пространства, доступного для пользователя, в байтах. Обычно его значение совпадает со значением свойства FreeSpace; исключение составляют такие файловые системы, как NTFS 5.0, поддерживающие дисковые квоты пользователей. Следующий пример возвращает объем доступного пространства на диске C в килобайтах:

function AvailSpace() {
  var fso = new ActiveXObject("Scripting.FileSystemObject");
  var d = fso.GetDrive("C");
  return d.AvailableSpace / 1024;
}

Свойство DriveLetter

Синтаксис: объект.DriveLetter
Атрибуты:  { DontEnum, DontDelete, ReadOnly }

Свойство DriveLetter возвращает букву, идентифицирующую данный диск. Если диск является сетевым и не отображен на логический диск, то возвращается пустая строка. Пример:

var fso = new ActiveXObject("Scripting.FileSystemObject");
var d = fso.GetDrive("C");
var x = d.DriveLetter;	// x равно "C"

Свойство DriveType

Синтаксис: объект.DriveType
Атрибуты:  { DontEnum, DontDelete, ReadOnly }

Свойство DriveType возвращает тип диска согласно следующей таблицы:

0 Неизвестное устройство.
1 Дисковод со сменными дисками.
2 Жесткий диск.
3 Сетевой диск.
4 Компакт диск.
5 Виртуальный диск в ОЗУ.

Пример использования этого свойства был приведен ранее.

Свойство FileSystem

Синтаксис: объект.FileSystem
Атрибуты:  { DontEnum, DontDelete, ReadOnly }

Свойство FileSystem возвращает тип файловой системы диска согласно следующей таблицы:

"FAT" Файловая система MS-DOS и Windows 95/98.
"NTFS" Файловая система Windows NT.
"CDFS" Файловая система компакт-дисков.

Пример:

var fso = new ActiveXObject("Scripting.FileSystemObject");
var d = fso.GetDrive("C");
var s = d.FileSystem;

Свойство FreeSpace

Синтаксис: объект.FreeSpace
Атрибуты:  { DontEnum, DontDelete, ReadOnly }

Свойство FreeSpace возвращает объем свободного дискового пространства в байтах. Обычно его значение совпадает со значением свойства AvailableSpace; исключение составляют такие файловые системы, как NTFS 5.0, поддерживающие дисковые квоты пользователей. Следующий пример возвращает объем свободного пространства на диске C в килобайтах:

function AvailSpace() {
  var fso = new ActiveXObject("Scripting.FileSystemObject");
  var d = fso.GetDrive("C");
  return d.FreeSpace / 1024;
}

Свойство IsReady

Синтаксис: объект.IsReady
Атрибуты:  { DontEnum, DontDelete, ReadOnly }

Свойство IsReady возвращает true, если в дисководе есть диск, и false в противном случае. Оно имеет смысл только для дисководов со сменными дисками и компакт-дисков. Пример использования этого свойства был приведен ранее.

Свойство Path

Синтаксис: объект.Path
Атрибуты:  { DontEnum, DontDelete, ReadOnly }

Свойство Path возвращает путь, соответствующий данному диску в виде строки "X:", где X — буква, обозначающая данный диск. Пример:

var fso = new ActiveXObject("Scripting.FileSystemObject");
var d = fso.GetDrive("C");
var s = d.Path;	// s равно "C:"

Свойство RootFolder

Синтаксис: объект.RootFolder
Атрибуты:  { DontEnum, DontDelete, ReadOnly }

Свойство RootFolder возвращает объект Folder, соответствующий корневой папке данного диска.

Свойство SerialNumber

Синтаксис: объект.SerialNumber
Атрибуты:  { DontEnum, DontDelete, ReadOnly }

Свойство SerialNumber возвращает десятичный серийный номер данного диска. Это свойство позволяет проверить, правильный ли диск вставлен в дисковод. Пример:

var fso = new ActiveXObject("Scripting.FileSystemObject");
var d = fso.GetDrive("A");
var n = 959814235;	// серийный номер диска, который должен быть в дисководе A
if (d.SerialNumber == n)
   …

Свойство ShareName

Синтаксис: объект.ShareName
Атрибуты:  { DontEnum, DontDelete, ReadOnly }

Свойство ShareName возвращает сетевое имя данного диска. Если диск не является сетевым, то возвращается пустая строка. Пример использования этого свойства был приведен ранее.

Свойство TotalSize

Синтаксис: объект.TotalSize
Атрибуты:  { DontEnum, DontDelete, ReadOnly }

Свойство TotalSize возвращает полный объем данного диска в байтах. Следующий пример возвращает объем диска C в килобайтах:

function AvailSpace() {
  var fso = new ActiveXObject("Scripting.FileSystemObject");
  var d = fso.GetDrive("C");
  return d.TotalSize / 1024;
}

Свойство VolumeName

Синтаксис: объект.VoulmeName
Атрибуты:  { DontEnum, DontDelete }

Свойство VolumeName возвращает или устанавливает метку тома для данного диска. Это единственное свойство объекта Drive, доступное для изменения сценарием. Пример использования этого свойства был приведен ранее.

3.15.2. Файлы: объект File

Объект File обеспечивает доступ к отдельному файлу. Он может быть создан методом FileSystemObject.GetFile или получен при просмотре коллекции Folder.Files.

Свойства объекта File
Свойство Описание
Attributes Атрибуты файла.
DateCreated Дата и время создания файла.
DateLastAccessed Дата и время последнего обращения к файлу.
DateLastModified Дата и время последнего изменения файла.
Drive Буква диска, на котором находится файл.
Name Имя файла.
ParentFolder Объект Folder папки, в которой находится файл.
Path Путь доступа к файлу.
ShortName Короткое имя файла.
ShortPath Короткое имя пути доступа к файлу.
Size Размер файла.
Type Тип файла.
Методы объекта File
Метод Описание
Copy Копирует файл.
Delete Удаляет файл.
Move Перемещает файл.
OpenAsTextStream Открывает файл как текстовый.

Свойство Attributes

Синтаксис: объект.Attributes
Атрибуты:  { DontEnum, DontDelete }

Свойство Attributes позволяет читать атрибуты данного файла и изменять некоторые из них. Его значением является логическая комбинация следующих битовых флагов:

Бит Атрибут Можно изменять
0 Обычный файл (все атрибуты сброшены).
1 Файл только для чтения. Да
2 Скрытый файл. Да
4 Системный файл. Да
8 Метка дискового тома. Нет
16 Папка или каталог. Нет
32 Файл был изменен после архивирования. Да
64 Ссылка или сокращение. Нет
128 Сжатый файл. Нет

Следующий пример показывает, как сбросить атрибут файла "только для чтения":

var fso = new ActiveXObject("Scripting.FileSystemObject");
var f = fso.GetFile("c:\\test.txt");
f.Attributes = f.Attributes - 1;

Свойство DateCreated

Синтаксис: объект.DateCreated
Атрибуты:  { DontEnum, DontDelete, ReadOnly }

Свойство DateCreated возвращает дату и время создания данного файла. Пример: следующий сценарий

var fso = new ActiveXObject("Scripting.FileSystemObject");
var f = fso.GetFile("c:\\config.sys");
document.write(f.DateCreated);

выведет на экран обозревателя текст следующего вида: Fri Jul 7 01:04:53 UTC+0600 2000.

Примечание. Значение этого свойства имеет нестандартный тип VT_DATE стандарта COM. При присваивании строковой переменной оно автоматически преобразуется в строку указанного вида.

Свойство DateLastAccessed

Синтаксис: объект.DateLastAccessed
Атрибуты:  { DontEnum, DontDelete, ReadOnly }

Свойство DateLastAccessed возвращает дату и время последнего открытия данного файла для чтения. Пример: следующий сценарий

var fso = new ActiveXObject("Scripting.FileSystemObject");
var f = fso.GetFile("c:\\config.sys");
document.write(f.DateLastAccessed);

выведет на экран обозревателя текст следующего вида: Fri Jul 7 01:04:53 UTC+0600 2000.

Примечание. Значение этого свойства имеет нестандартный тип VT_DATE стандарта COM. При присваивании строковой переменной оно автоматически преобразуется в строку указанного вида.

Свойство DateLastModified

Синтаксис: объект.DateLastModified
Атрибуты:  { DontEnum, DontDelete, ReadOnly }

Свойство DateLastModified возвращает дату и время последней модификации данного файла. Пример: следующий сценарий

var fso = new ActiveXObject("Scripting.FileSystemObject");
var f = fso.GetFile("c:\\config.sys");
document.write(f.DateLastModified);

выведет на экран обозревателя текст следующего вида: Fri Jul 7 01:04:53 UTC+0600 2000.

Примечание. Значение этого свойства имеет нестандартный тип VT_DATE стандарта COM. При присваивании строковой переменной оно автоматически преобразуется в строку указанного вида.

Свойство Drive

Синтаксис: объект.Drive
Атрибуты:  { DontEnum, DontDelete, ReadOnly }

Свойство Drive возвращает букву, идентифицирующую диск, на котором находится данный файл. Если диск является сетевым и не отображен на логический диск, то возвращается пустая строка. Пример:

var fso = new ActiveXObject("Scripting.FileSystemObject");
var f = fso.GetFile("c:\\config.sys");
var x = f.Drive;	// x равно "C"

Свойство Name

Синтаксис: объект.Name
Атрибуты:  { DontEnum, DontDelete }

Свойство Name позволяет читать и изменять имя данного файла. Пример:

var fso = new ActiveXObject("Scripting.FileSystemObject");
var f = fso.GetFile("c:\\config.sys");
var x = f.Name;	// x равно "CONFIG.SYS"

Свойство ParentFolder

Синтаксис: fso.ParentFolder
Атрибуты:  { DontEnum, DontDelete, ReadOnly }

Метод ParentFolder возвращает объект Folder, соответствующий папке, содержащей данный файл.Пример:

var fso = new ActiveXObject("Scripting.FileSystemObject");
var f = fso.GetFile("c:\\config.sys");
var p = f.ParentFolder;
var x = p.Path;	// x равно "C:\\"

Свойство Path

Синтаксис: объект.Path
Атрибуты:  { DontEnum, DontDelete, ReadOnly }

Свойство Path возвращает путь доступа к данному файлу. Пример:

var fso = new ActiveXObject("Scripting.FileSystemObject");
var f = fso.GetFile("c:\\config.sys");
var x = f.Path;	// x равно "C:\\CONFIG.SYS"

Свойство ShortName

Синтаксис: объект.ShortName
Атрибуты:  { DontEnum, DontDelete, ReadOnly }

Свойство ShortName возвращает имя данного файла в нотации MS-DOS (8 символов на имя файла и 3 символа на расширение). Пример:

var fso = new ActiveXObject("Scripting.FileSystemObject");
var f = fso.GetFile("C:\\Multimedia Files\\Graphics\\Animations\\Airpane.gif");
var x = f.ShortName;	// x равно "AIRPLANE.GIF"

Свойство ShortPath

Синтаксис: объект.ShortPath
Атрибуты:  { DontEnum, DontDelete, ReadOnly }

Свойство ShortPath возвращает путь доступа к данному файлу в нотации MS-DOS (8 символов на имя файла и 3 символа на расширение). Пример:

var fso = new ActiveXObject("Scripting.FileSystemObject");
var f = fso.GetFile("C:\\Multimedia Files\\Graphics\\Animations\\Airpane.gif");
var x = f.ShortPath;	// x равно "C:\\MULTIM~1\\GRAPHICS\\ANIMAT~1\\AIRPLANE.GIF"

Свойство Size

Синтаксис: объект.Size
Атрибуты:  { DontEnum, DontDelete, ReadOnly }

Свойство Size возвращает размер данного файла в байтах. Пример:

var fso = new ActiveXObject("Scripting.FileSystemObject");
var f = fso.GetFile("c:\\config.sys");
var x = f.Size;

Свойство Type

Синтаксис: объект.Type
Атрибуты:  { DontEnum, DontDelete, ReadOnly }

Свойство Type возвращает тип данного файла. Тип файла — это текстовая строка, соответствующая расширению файла и хранящаяся в системном реестре. Пример:

var fso = new ActiveXObject("Scripting.FileSystemObject");
var f = fso.GetFile("C:\\Multimedia Files\\Graphics\\Animations\\Airpane.gif");
var x = f.Type;	// x равно "GIF Image"

Метод Copy

Синтаксис: объект.Copy(цель [, флаг]?)
Аргументы: цель — строковое выражение
           флаг — логическое значение

Метод Copy копирует данный файл. Строка цель задает имя результирующего файла или папки, а необязательный аргумент флаг указывает, следует ли заменять при копировании существующие файлы (по умолчанию он равен true, т. е. существующие файлы заменяются).

Если цель заканчивается символом "\", то цель считается именем папки, в которую копируются исходный файл. В остальных случаях цель считается именем результирующего файла. Сам процесс копирования происходит так:

  • если файла с именем цель нет, то производится копирование файла;
  • если файл цель существует и флаг равен false, то метод завершается ошибкой, иначе делается попытка копирования источника поверх цели; при этом независимо от значения флага, попытка замены существующего файла с атрибутом "только для чтения" завершается ошибкой;
  • если цель является каталогом, то метод завершается ошибкой.

Пример: следующий сценарий копирует файл CONFIS.SYS в папку d:\Temp.

var fso = new ActiveXObject("Scripting.FileSystemObject");
var f = fso.GetFile("c:\\config.sys");
f.Copy("d:\\Temp");

Ср. метод FileSystemObject.CopyFile.

Метод Delete

Синтаксис: объект.Delete(флаг?)
Аргументы: флаг — логическое выражение

Метод Delete удаляет данный файл. При этом необязательный аргумент флаг указывает, следует ли удалять файл, имеющий атрибут "только для чтения" (по умолчанию он равен false, т. е. такие файлы не удаляются). Пример:

var fso = new ActiveXObject("Scripting.FileSystemObject");
var f = fso.GetFile("C:\\Multimedia Files\\Graphics\\Animations\\Airpane.gif");
f.Delete(true);

Ср. метод FileSystemObject.DeleteFile.

Метод Move

Синтаксис: объект.Move(цель)
Аргументы: цель — строковое выражение

Метод Move перемещает данный файл в другое место. При этом строка цель задает имя результирующего файла или папки.

Если цель заканчивается символом "\", то цель считается именем папки, в которую перемещается исходный файл. В остальных случаях цель считается именем результирующего файла. Сам процесс перемещения происходит так:

  • если файла с именем цель нет, то производится перемещение файла;
  • если файл цель существует, то метод завершается ошибкой;
  • если цель является каталогом, то метод завершается ошибкой.

Пример: следующий сценарий перемещает файл CONFIS.SYS в папку d:\Temp (но делать этого не нужно!).

var fso = new ActiveXObject("Scripting.FileSystemObject");
var f = fso.GetFile("c:\\config.sys");
f.Move("d:\\Temp");

Ср. метод FileSystemObject.MoveFile.

Метод OpenAsTextStream

Синтаксис: объект.OpenAsTextStream(режим? [, формат]?)
Аргументы: режим, формат — числовые выражения
Результат: новый объект TextStream

Метод OpenTextFile открывает данный файл как текстовый. Он полностью аналогичен методу FileSystemObject.OpenTextFile.

3.15.3. Папки: объект Folder

Объект Folder обеспечивает доступ к отдельному папке. Он может быть создан методом FileSystemObject.GetFolder или получен чтением свойств Drive.RootFolder и File.ParentFolder.

Свойства объекта Folder
Свойство Описание
Attributes Атрибуты папки.
DateCreated Дата и время создания папки.
DateLastAccessed Дата и время последнего обращения к папке.
DateLastModified Дата и время последнего изменения папки.
Drive Буква диска, на котором находится папка.
Files Коллекция файлов данной папки.
IsRootFolder Проверяет, является ли папка корневой.
Name Имя папки.
ParentFolder Объект Folder папки, в которой находится папка.
Path Путь доступа к папке.
ShortName Короткое имя папки.
ShortPath Короткое имя пути доступа к папке.
Size Размер папки с подпапками.
SubFolders Коллекция подпапок данной папки.
Type Тип папки.
Методы объекта Folder
Метод Описание
Copy Копирует папку.
CreateTextFile Создает текстовый файл.
Delete Удаляет папку.
Move Перемещает папку.

Свойство Attributes

Синтаксис: объект.Attributes
Атрибуты:  { DontEnum, DontDelete }

Свойство Attributes позволяет читать атрибуты данной папки и изменять некоторые из них. Полностью аналогично свойству File.Attributes.

Свойство DateCreated

Синтаксис: объект.DateCreated
Атрибуты:  { DontEnum, DontDelete, ReadOnly }

Свойство DateCreated возвращает дату и время создания данной папки. Пример: следующий сценарий

var fso = new ActiveXObject("Scripting.FileSystemObject");
var f = fso.GetFolder("c:\\Program Files");
document.write(f.DateCreated);

выведет на экран обозревателя текст следующего вида: Mon Jul 12 20:43:58 UTC+0600 1999.

Примечание. Значение этого свойства имеет нестандартный тип VT_DATE стандарта COM. При присваивании строковой переменной оно автоматически преобразуется в строку указанного вида.

Свойство DateLastAccessed

Синтаксис: объект.DateLastAccessed
Атрибуты:  { DontEnum, DontDelete, ReadOnly }

Свойство DateLastAccessed возвращает дату и время последнего доступа к данной папке. Пример: следующий сценарий

var fso = new ActiveXObject("Scripting.FileSystemObject");
var f = fso.GetFolder("c:\\Program Files");
document.write(f.DateLastAccessed);

выведет на экран обозревателя текст следующего вида: Mon Jul 12 20:43:58 UTC+0600 1999.

Примечание. Значение этого свойства имеет нестандартный тип VT_DATE стандарта COM. При присваивании строковой переменной оно автоматически преобразуется в строку указанного вида.

Свойство DateLastModified

Синтаксис: объект.DateLastModified
Атрибуты:  { DontEnum, DontDelete, ReadOnly }

Свойство DateLastModified возвращает дату и время последней модификации данной папки. Пример: следующий сценарий

var fso = new ActiveXObject("Scripting.FileSystemObject");
var f = fso.GetFolder("c:\\Program Files");
document.write(f.DateLastModified);

выведет на экран обозревателя текст следующего вида: Mon Jul 12 20:43:58 UTC+0600 1999.

Примечание. Значение этого свойства имеет нестандартный тип VT_DATE стандарта COM. При присваивании строковой переменной оно автоматически преобразуется в строку указанного вида.

Свойство Drive

Синтаксис: объект.Drive
Атрибуты:  { DontEnum, DontDelete, ReadOnly }

Свойство Drive возвращает букву, идентифицирующую диск, на котором находится данная папка. Если диск является сетевым и не отображен на логический диск, то возвращается пустая строка. Пример:

var fso = new ActiveXObject("Scripting.FileSystemObject");
var f = fso.GetFolder("c:\\Program Files");
var x = f.Drive;	// x равно "C"

Свойство Files

Синтаксис: объект.Files
Атрибуты:  { DontEnum, DontDelete, ReadOnly }

Свойство Files возвращает коллекцию объектов File, соответствующих всем файлам, содержащимся в данной папке, включая скрытые и системные файлы. Для просмотра этой коллекции следует пользоваться объектом Enumerator.

Пример: следующий сценарий выведет на экран список всех файлов корневого каталога диска C.

function ShowFileList(folderspec) {
   var fso = new ActiveXObject("Scripting.FileSystemObject");
   var f = fso.GetFolder(folderspec);
   var fc = new Enumerator(f.Files);
   var s = "";
   for (; !fc.atEnd(); fc.moveNext())
      s += fc.item() + "<br>";
   return s;
}

document.write(ShowFileList("c:\\"));

Свойство IsRootFolder

Синтаксис: объект.IsRootFolder
Атрибуты:  { DontEnum, DontDelete, ReadOnly }

Свойство IsRootFolder возвращает true, если данная папка является корневой, и false в противном случае.

Свойство Name

Синтаксис: объект.Name
Атрибуты:  { DontEnum, DontDelete }

Свойство Name позволяет читать и изменять имя данной папки. Пример:

var fso = new ActiveXObject("Scripting.FileSystemObject");
var f = fso.GetFolder("c:\\Program Files");
var x = f.Name;	// x равно "Program Files"

Свойство ParentFolder

Синтаксис: fso.ParentFolder
Атрибуты:  { DontEnum, DontDelete, ReadOnly }

Метод ParentFolder возвращает объект Folder, соответствующий папке, содержащей данную папку. Если папка является корневой, то возвращается null. Пример:

var fso = new ActiveXObject("Scripting.FileSystemObject");
var f = fso.GetFolder("c:\\Program Files");
var p = f.ParentFolder;
var x = p.Path;	// x равно "C:\\"

Свойство Path

Синтаксис: объект.Path
Атрибуты:  { DontEnum, DontDelete, ReadOnly }

Свойство Path возвращает путь доступа к данной папке. Пример:

var fso = new ActiveXObject("Scripting.FileSystemObject");
var f = fso.GetFolder("c:\\Program Files");
var x = f.Path;	// x равно "C:\\Program Files"

Свойство ShortName

Синтаксис: объект.ShortName
Атрибуты:  { DontEnum, DontDelete, ReadOnly }

Свойство ShortName возвращает имя данной папки в нотации MS-DOS (8 символов на имя файла и 3 символа на расширение). Пример:

var fso = new ActiveXObject("Scripting.FileSystemObject");
var f = fso.GetFolder("C:\\Multimedia Files\\Graphics\\Animations");
var x = f.ShortName;	// x равно "ANIMAT~1"

Свойство ShortPath

Синтаксис: объект.ShortPath
Атрибуты:  { DontEnum, DontDelete, ReadOnly }

Свойство ShortPath возвращает путь доступа к данной папке в нотации MS-DOS (8 символов на имя файла и 3 символа на расширение). Пример:

var fso = new ActiveXObject("Scripting.FileSystemObject");
var f = fso.GetFolder("C:\\Multimedia Files\\Graphics\\Animations");
var x = f.ShortPath;	// x равно "C:\\MULTIM~1\\GRAPHICS\\ANIMAT~1"

Свойство Size

Синтаксис: объект.Size
Атрибуты:  { DontEnum, DontDelete, ReadOnly }

Свойство Size возвращает суммарный размер в байтах всех файлов, содержащихся в данной папке и ее подпапках. Пример:

var fso = new ActiveXObject("Scripting.FileSystemObject");
var f = fso.GetFolder("c:\\");
var x = f.Size;

Свойство SubFolders

Синтаксис: объект.SubFolders
Атрибуты:  { DontEnum, DontDelete, ReadOnly }

Свойство SubFolders возвращает коллекцию объектов Folder, соответствующих всем папкам, содержащимся в данной папке, включая скрытые и системные папки. Для просмотра этой коллекции следует пользоваться объектом Enumerator.

Пример: следующий сценарий выведет на экран список всех подпапок корневого каталога диска C.

function ShowFileList(folderspec) {
   var fso = new ActiveXObject("Scripting.FileSystemObject");
   var f = fso.GetFolder(folderspec);
   var fc = new Enumerator(f.SubFolders);
   var s = "";
   for (; !fc.atEnd(); fc.moveNext())
      s += fc.item() + "<br>";
   return s;
}

document.write(ShowFileList("c:\\"));

Свойство Type

Синтаксис: объект.Type
Атрибуты:  { DontEnum, DontDelete, ReadOnly }

Свойство Type возвращает тип данной папки. Тип — это текстовая строка, соответствующая расширению файла и хранящаяся в системном реестре. Пример:

var fso = new ActiveXObject("Scripting.FileSystemObject");
var f = fso.GetFolder("C:\\Multimedia Files\\Graphics\\Animations");
var x = f.Type;	// x равно "Папка с файлами" (в русифицированной Windows)

Метод Copy

Синтаксис: объект.Copy(цель [, флаг]?)
Аргументы: цель — строковое выражение
           флаг — логическое значение

Метод Copy полностью копирует данную папку. Строка цель задает имя результирующей папки, а необязательный аргумент флаг указывает, следует ли заменять при копировании существующие файлы (по умолчанию он равен true, т. е. существующие файлы заменяются). Сам процесс копирования происходит так:

  • если папки с именем цель нет, то производится копирование папки;
  • если папка цель существует и флаг равен false, то метод завершается ошибкой, иначе делается попытка копирования источника поверх цели; при этом независимо от значения флага, попытка замены существующего файла с атрибутом "только для чтения" завершается ошибкой.

Пример: следующий сценарий копирует папку c:\ в папку d:\Temp.

var fso = new ActiveXObject("Scripting.FileSystemObject");
var f = fso.GetFolder("c:\\");
f.Copy("d:\\Temp");

Ср. метод FileSystemObject.CopyFolder.

Метод CreateTextFile

Синтаксис: объект.CreateTextFile(имя [[, флаг]?, unicode]?)
Аргументы: имя — строковое выражение
           флаг, unicode — логические выражения
Результат: новый объект TextStream

Метод CreateTextFile создает текстовый файл с заданным именем. Он полностью аналогичен методу FileSystemObject.CreateTextFile.

Метод Delete

Синтаксис: объект.Delete(флаг?)
Аргументы: флаг — логическое выражение

Метод Delete удаляет данную папку. При этом необязательный аргумент флаг указывает, следует ли удалять файлы, имеющие атрибут "только для чтения" (по умолчанию он равен false, т. е. такие файлы не удаляются). Папка удаляется независимо от того, пуста оно или нет. Пример:

var fso = new ActiveXObject("Scripting.FileSystemObject");
var f = fso.GetFolder("C:\\Multimedia Files\\Graphics\\Animations");
f.Delete(true);

Ср. метод FileSystemObject.DeleteFolder.

Метод Move

Синтаксис: объект.Move(цель)
Аргументы: цель — строковое выражение

Метод Move перемещает данную папку в другое место. При этом строка цель задает имя результирующей папки. Сам процесс перемещения происходит так:

  • если папки с именем цель нет, то производится перемещение папки;
  • если папка цель существует, то метод завершается ошибкой.

Пример: следующий сценарий перемещает папку c:\ в папку d:\Temp (но делать этого не нужно!).

var fso = new ActiveXObject("Scripting.FileSystemObject");
var f = fso.GetFile("c:\\");
f.Move("d:\\Temp");

Ср. метод FileSystemObject.MoveFolder.

3.15.4. Текстовые файлы: объект TextStream

Объект TextStream предназначен для работы с текстовыми файлами. Он может быть создан методами FileSystemObject.CreateTextFile, FileSystemObject.OpenTextFile, Folder.CreateTextFile и File.OpenAsTextStream.

WDH+ О работе с текстовыми файлами см. также WDH+: ANSI и Unicode.

Свойства объекта TextStream
Свойство Описание
AtEndOfLine Проверяет конец строки.
AtEndOfStream Проверяет конец файла.
Column Номер текущего символа в строке.
Line Номер текущей строки.
Методы объекта TextStream
Метод Описание
Close Закрывает файл.
Read Читает заданное количество символов.
ReadAll Читает весь файл.
ReadLine Читает строку.
Skip Пропускает заданное количество символов.
SkipLine Пропускает строку.
Write Выводит строку.
WriteBlankLines Выводит пустые строки.
WriteLine Выводит строку и символ конца строки.

Свойство AtEndOfLine

Синтаксис: объект.AtEndOfLine
Атрибуты:  { DontEnum, DontDelete, ReadOnly }

Свойство AtEndOfLine возвращает true, если следующим символом файла является символ перевода строки, и false в противном случае. Этим свойством обладают только файлы, открытые для чтения. Следующий пример показывает, как можно считать первую строку текстового файла:

var fso = new ActiveXObject("Scripting.FileSystemObject");
var f = fso.OpenTextFile("c:\\test.txt", 1, false);
var s = "";
while (!f.AtEndOfLine)
  s += f.Read(1);
f.Close();

Свойство AtEndOfStream

Синтаксис: объект.AtEndOfStream
Атрибуты:  { DontEnum, DontDelete, ReadOnly }

Свойство AtEndOfStream возвращает true, если достигнут конец файла, и false в противном случае. Этим свойством обладают только файлы, открытые для чтения. Следующий пример показывает, как можно считать весь текстовый файл в строку:

var fso = new ActiveXObject("Scripting.FileSystemObject");
var f = fso.OpenTextFile("c:\\test.txt", 1, false);
var s = "";
while (!f.AtEndOfStream)
  s += f.ReadLine();
f.Close();

Свойство Column

Синтаксис: объект.Column
Атрибуты:  { DontEnum, DontDelete, ReadOnly }

Свойство Column возвращает номер текущего символа в строке, считая с 1. Пример:

var fso = new ActiveXObject("Scripting.FileSystemObject");
var f = fso.OpenTextFile("c:\\test.txt", 1, false);
var s = f.ReadLine();
var n = f.Column;

Свойство Line

Синтаксис: объект.Line
Атрибуты:  { DontEnum, DontDelete, ReadOnly }

Свойство Line возвращает номер текущей строки файла, считая с 1. Пример:

var fso = new ActiveXObject("Scripting.FileSystemObject");
var f = fso.OpenTextFile("c:\\test.txt", 1, false);
var s = f.ReadAll();
var n = f.Line;

Метод Close

Синтаксис: объект.Close()

Метод Close закрывает данный файл. Примеры его использования приведены выше.

Метод Read

Синтаксис: объект.Read(число)
Аргументы: число — числовое выражение
Результат: строковое значение

Метод Read читает из файла заданное число символов и возвращает их в новой строке. Пример его использования приведен выше.

Метод ReadAll

Синтаксис: объект.ReadAll()
Результат: строковое значение

Метод ReadAll считывает файл полностью и возвращает результат в новой строке. Пример его использования приведен выше. Этим методом можно пользоваться только в тех случаях, когда размер файла невелик. В противном случае следует пользоваться последовательным обращением к методу ReadLine.

Метод ReadLine

Синтаксис: объект.ReadLine()
Результат: строковое значение

Метод ReadLine считывает очередную строку из файла и возвращает результат в новой строке. Пример его использования приведен выше. Чтение производится до символа перевода строки, но не включая его.

Метод Skip

Синтаксис: объект.Skip(число)
Аргументы: число — числовое выражение

Метод Skip считывает из файла заданное число символов, но не возвращает их. Используется для пропуска ненужного содержимого файла. Следующий пример пропускает при чтении первую строку файла:

var fso = new ActiveXObject("Scripting.FileSystemObject");
var f = fso.OpenTextFile("c:\\test.txt", 1, false);
while (!f.AtEndOfLine)
  f.Skip(1);
…

Метод SkipLine

Синтаксис: объект.SkipLine()

Метод SkipLine считывает из файла очередную строку, но не возвращает ее. Используется для пропуска ненужного содержимого файла. Следующий пример пропускает при чтении первую строку файла:

var fso = new ActiveXObject("Scripting.FileSystemObject");
var f = fso.OpenTextFile("c:\\test.txt", 1, false);
f.SkipLine();
…

Метод Write

Синтаксис: объект.Write(строка)
Аргументы: строка — строковое выражение

Метод Write выводит в файл заданную строку. Символ перевода строки после строки не выводится, для этого нужно пользоваться методом WriteLine. Пример:

var fso = new ActiveXObject("Scripting.FileSystemObject");
var f = fso.OpenTextFile("c:\\test.txt", 2, true);
f.Write("Тестовая строка");
f.Close();

Метод WriteBlankLines

Синтаксис: объект.WriteBlankLines(число)
Аргументы: число — числовое выражение

Метод WriteBlankLines выводит в файл заданное число символов перевода строки. Пример:

var fso = new ActiveXObject("Scripting.FileSystemObject");
var f = fso.OpenTextFile("c:\\test.txt", 2, false);
f.WriteBlankLines(10);
f.Close()

Метод WriteLine

Синтаксис: объект.Write(строка?)
Аргументы: строка — строковое выражение

Метод Write выводит в файл заданную строку и символ перевода строки после нее. Если строка опущена, то выводится только символ перевода строки. Пример:

var fso = new ActiveXObject("Scripting.FileSystemObject");
var f = fso.OpenTextFile("c:\\test.txt", 2, true);
f.WriteLine("Тестовая строка");
f.Close();