JScript -> FileSystemObject

JScript -> FileSystemObject

JavaScript это современный язык, который позволяет работать с дисковой системой практически напрямую. В этом разделе описаны методы работы с файлами при помощи объекта Folder. Это не модификация файла, а его атрибуты, пути и прочее. Т.е. сбор информации о папке. Нарядус этим при помощи методов можно копировать файл, перемещать и прочее. Довольно полезный объект )))

FileSystemObject

Объект FileSystemObject обеспечивает практически полный доступ к файловой системе Windows. Его конструктор имеет вид:

 

Отметим, что сценарий может создать только один экземпляр данного объекта, в отличии от объектов Drive File и Folder, сколько бы раз в нем не вызывался данный конструктор.

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

 

Поскольку FileSystemObject обеспечивает нам любые манипуляции с файлами и папками компьютера, то по умолчанию установки безопасности Internet Explorer запрещают его использование на стороне клиента. Поэтому для использования большинства из описанных ниже методов вы должны разрешить исполнение в Internet Explorer небезопасных элементов ActiveX, что серьезно угрожает целостности вашей системы.

Mexanik

 

Свойства объекта FileSystemObject
Свойство Описание
Drives Коллекция дисков локального компьютера.
Методы объекта FileSystemObject
Метод Описание
BuildPath Создает имя пути из двух компонентов.
CopyFile Копирует один или несколько файлов.
CopyFolder Полностью копирует папку.
CreateFolder Создает новую папку.
CreateTextFile Создает текстовый файл.
DeleteFile Удаляет файл.
DeleteFolder Полностью удаляет папку.
DriveExists Проверяет, существует ли данный диск.
FileExists Проверяет, существует ли данный файл.
FolderExists Проверяет, существует ли данная папка.
GetAbsolutePathName Возвращает полное название пути.
GetBaseName Извлекает имя файла из пути.
GetDrive Возвращает заданный объект Drive.
GetDriveName Извлекает имя диска из пути.
GetExtensionName Извлекает расширение файла из пути.
GetFile Возвращает заданный объект File.
GetFileName Извлекает спецификацию файла из пути.
GetFolder Возвращает заданный объект Folder.
GetParentFolderName Возвращает имя отцовской папки.
GetSpecialFolder Возвращает объект Folder для системной папки.
GetTempName Создает имя временного файла.
MoveFile Переносит файл.
MoveFolder Полностью перемещает папку.
OpenTextFile Открывает текстовый файл.
Свойство Drives

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

Метод BuildPath

Синтаксис: fso.BuildPath(путь, имя)
Аргументы: путь, имя — строковые выражения
Результат: строковое значение

Метод BuildPath добавляет к пути заданное имя и возвращает результирующую строку. При необходимости перед именем добавляется разделитель «\«. Например, следующий сценарий

выведет на экран обозревателя текст c:\My Documents\New Folder.

Метод CopyFile

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

Метод CopyFile копирует один или несколько файлов. При этом строка источник задает спецификацию исходного файла и может содержать подстановочные знаки «*» и «?» в последнем компоненте, строка цель задает имя результирующего файла или папки, а необязательный аргумент флаг указывает, следует ли заменять при копировании существующие файлы (по умолчанию он равен true, т. е. существующие файлы заменяются).

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

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

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

Метод CopyFolder

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

Метод CopyFolder копирует одну папку в другую, включая подпапки. При этом строка источник задает спецификацию исходной папки и может содержать подстановочные знаки «*» и «?» в последнем компоненте, строка цель задает имя результирующей папки, а необязательный аргумент флаг указывает, следует ли заменять при копировании существующие файлы (по умолчанию он равен true, т. е. существующие файлы заменяются).

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

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

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

Метод CreateFolder

Метод CreateFolder создает папку с заданным именем. Если такая папка уже есть, то метод завершается ошибкой.

Пример: следующий сценарий создает папку C:\New Folder.

Метод CreateTextFile

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

Метод CreateTextFile создает текстовый файл с заданным именем. При этом необязательный аргумент флаг указывает, следует ли удалять существующий файл с этим именем (по умолчанию он равен true, т. е. существующие файлы заменяются новыми), а необязательный аргумент unicode задает кодировку символов файла (true означает кодировку Unicode, а false — кодировку ANSI; по умолчанию создается файл в кодировке ANSI). Пример:

Метод DeleteFile

Синтаксис: fso.DeleteFile(имя [, флаг]?)
Аргументы: имя — строковое выражение
           флаг — логическое выражение

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

Метод DeleteFolder

Синтаксис: fso.DeleteFolder(имя [, флаг]?)
Аргументы: имя — строковое выражение
           флаг — логическое выражение

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

Метод DriveExists

Метод DriveExists проверяет, существует ли диск с заданным именем на локальном компьютере, и возвращает соответствующий результат. Строка имя может состоять из буквы, задающей имя диска («c»), из буквы с двоеточием («c:»), из буквы с двоеточием и разделителем пути («c:\\») или содержать спецификацию сетевого диска («\\computer3\\public1»).

Примечание. Этот метод не проверяет наличие диска в дисководе со сменными дисками, а только существование самого дисковода. Для проверки наличия диска в дисководе пользуйтесь методом Drive.IsReady

Mexanik

 

Метод FileExists

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

Метод FolderExists

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

Метод GetAbsolutePathName

Метод GetAbsolutePathName преобразует заданный путь в полное имя пути и возвращает результирующую строку. Пусть, например, текущим каталогом является c:\My Documents\Letters. Следующая таблица иллюстрирует результаты применения метода GetAbsolutePathName к различным входным аргументам.

Имя GetAbsolutePathName(имя)
«» «c:\\My Documents\\Letters»
«..» «c:\\My Documents»
«\\» «c:\\»
«oct2000\\*.doc» «c:\\My Documents\\Letters\\oct2000\\*.doc»
«file.txt» «c:\\My Documents\\Letters\\file.txt»
Метод GetBaseName

Метод GetBaseName извлекает из заданного пути его последний компонент: имя каталога или имя файла. В последнем случае имя файла возвращается без расширения. Примеры:

Метод GetDrive

Метод GetDrive возвращает объект Drive, соответствующий диску с заданным именем. Строка имя может состоять из буквы, задающей имя диска («c»), из буквы с двоеточием («c:»), из буквы с двоеточием и разделителем пути («c:\\») или содержать спецификацию сетевого диска («\\computer3\\public1»). Если диска с данным именем не существует, метод завершается ошибкой. Пример: следующая функция извлекает имя диска из аргумента путь и возвращает объем свободного пространства на этом диске в мегабайтах.

Метод GetDriveName

Метод GetDriveName извлекает из заданного пути имя диска. Если его там нет, то возвращается пустая строка. Пример:

Метод GetExtensionName

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

Метод GetFile

Метод GetFile возвращает объект File, соответствующий файлу с заданным именем. Если файла с данным именем не существует, метод завершается ошибкой. Пример: следующая функция возвращает дату создания заданного файла.

Метод GetFileName

Метод GetFileName извлекает из заданного пути его последний компонент: имя каталога или имя файла. В последнем случае имя файла возвращается вместе с расширением. Примеры:

Метод GetFolder

Метод GetFolder возвращает объект Folder, соответствующий папке с заданным именем. Если папки с данным именем не существует, метод завершается ошибкой. Пример: следующая функция возвращает дату создания заданного папки.

Метод GetParentFolderName

Метод GetParentFolderName извлекает из заданного пути отцовскую папку его последнего компонента или пустую строку, если такой папки в пути нет. Примеры:

Метод GetSpecialFolder

Метод GetSpecialFolder возвращает объект Folder, соответствующий системной папке, заданной аргументом номер согласно следующей таблицы.

Номер Системная папка
0 Папка операционной системы Windows
1 Папка System операционной системы Windows
2 Папка для хранения временных файлов.

Например, в системе Windows 98 будут возвращены следующие имена папок:

Метод GetTempName

Метод GetTempName возвращает случайно сгенерированное имя временного файла. Этим методом следует пользоваться для создания временных файлов, которые после создания и использования будут удалены сценарием. Пример:

Метод MoveFile перемещает один или несколько файлов в другое место. При этом строка источник задает спецификацию исходного файла и может содержать подстановочные знаки «*» и «?» в последнем компоненте, а строка цель задает имя результирующего файла или папки.

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

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

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

Метод MoveFolder

Метод MoveFolder перемещает одну папку в другую, включая подпапки. При этом строка источник задает спецификацию исходной папки и может содержать подстановочные знаки «*» и «?» в последнем компоненте, а строка цель задает имя результирующей папки.

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

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

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

Метод OpenTextFile

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

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

Необязательный аргумент режим задает режим открытия файла и может принимать следующие значения:

1 Открыть файл только для чтения. Принято по умолчанию.
2 Открыть файл для записи. Запись производится с начала файла, старое содержимое теряется.
8 Открыть файл для добавления. Запись производится в конец файла.

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

0 Открыть файл в кодировке ANSI. Принято по умолчанию.
-1 Открыть файл в кодировке Unicode.
-2 Открыть файл в кодировке операционной системы.

Пример открытия файла в режиме добавления:

 

Один комментарий для “JScript -> FileSystemObject

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *