Отправляет email-рассылки с помощью сервиса Sendsay

Программирование на JavaScript

  Все выпуски  

Азы и секреты программирования на JavaScript.


Служба Рассылок Subscribe.Ru проекта Citycat.Ru
Азы и секреты программирования на JavaScript Выпуск 7

Ссылка на архив предыдущих выпусков: http://www.b-soft.ru/prof/index.shtml
Статистика рассылки: http://subscribe.ru/stat/comp.soft.prog.javascript/

Методы объекта FileSystemObject (часть 1).

BuildPath Метод
Устанавливает переменную для обозначения пути к каталогу.

Синтаксис:
object.BuildPath(path, name)

Аргументы:
Object - Обязательный. Имя объекта FileSystemObject.
path -Обязательный. Существующий путь, добавляемый к переменной. Путь может быть абсолютный или относительный и не обязательно должен указывать на существующую папку.
name - Обязательный. Имя для выбранного каталога.

Замечания
Метод BuildPath вставляет в случае необходимости дополнительный разделитель каталогов между существующим путем и именем новой папки.

Пример:
// файл sam7_1.js
// пример использования метода BuildPath
var fso, path, newpath;
path = "c:\\temp";
fso = new ActiveXObject("Scripting.FileSystemObject");
newpath = fso.BuildPath(path, "X_Folder");
WScript.echo(newpath);
WScript.Quit(0);
// конец файла примера

CopyFile Метод
Копирует один или большее количество файлов из одного места в другое.

Синтаксис
object.CopyFile ( source, destination[, overwrite] )

Аргументы
object - Обязательный. Имя объекта FileSystemObject.
source - Обязательный. Символьная строка, указывающая расположение файла(ов), которая может включать групповые символы для одного или большего количество файлов, которые должны быть скопированы.
destination - Обязательный. Символьный строка, указывающая путь, куда файл или файлы будут скопированы. Здесь групповые символы не допускаются.
overwrite - Не обязательный. Булево значение, которое указывает перезаписывать ли существующие файлы поверх. Если истина, файлы будут перезаписаны поверх, если ложь - нет. Значение по умолчанию - истина. Обратите внимание на то, что CopyFile не выполнится, если файл-адресат уже существует, и имеет атрибут "только для чтения", независимо от установки режима наложения записи.

Замечания
Групповые символы могут использоваться только в компоненте исходного пути. Если параметр-источник содержит групповые символы, или параметр-адресат заканчивается разделителем пути (\), считается, что адресат - папка, куда будут скопированы файлы. Иначе считается, что адресат - название файла. В любом случае, существует три ситуации при копировании отдельного файла:
  • Если целевой файл отсутствует, то источник будет успешно скопирован.
  • Если целевой файл уже есть, а параметр overwrite установлен в false, возникает ошибка. Если параметр overwrite установлен в true - источник будет успешно перезаписан поверх существующего файла.
  • Если целевой параметр – каталог, возникает ошибка.
Ошибка также возникает, если в источнике используются групповые символы, не соответствующие ни одному из файлов. Метод CopyFile останавливается на первой встретившейся ошибке. Внимание: не существует способа,чтобы отменить любые изменения, сделанные прежде, чем произошла ошибка.

Примеры:
// файл sam7_2.js
// Копирование файлов при помощи метода CopyFile
fso = new ActiveXObject("Scripting.FileSystemObject");
fso.CopyFile ("c:\\mydocuments\\letters\\*.doc", "c:\\tempfolder\\");
WScript.Quit(0);
// конец файла примера
// файл sam7_3.js
// Копирование файлов при помощи метода CopyFile
// ошибка в синтаксисе
fso = new ActiveXObject("Scripting.FileSystemObject");
fso.CopyFile ("c:\\mydocuments\\*\\R1???97.xls", "c:\\tempfolder");
WScript.Quit(0);
// конец файла примера

CopyFolder Метод
Рекурсивное копирование папок из одного места в другое.

Синтаксис
object.CopyFolder ( source, destination[, overwrite] );

Аргументы
object - Обязательный. Всегда имя объекта FileSystemObject.
source - Обязательный. Символьная строка, указывающая путь к каталогу- источнику, которая может содержать групповые символы подстановки (* или ?) для копирования одной или более папок одновременно.
destination - Обязательный. Символьная строка, указывающая путь к каталогу- приемнику. Здесь применение символов подстановки недопустимо.
overwrite - Не обязательный. Булево значение (true или false), которое показывает, перезаписывать ли существующие файлы. Если true – файлы будут перезаписаны; если false - нет. Если параметр опущен, используется величина по-умолчанию - true.

Замечания
Групповые символы допускается использовать только в конце строки параметра-источника. Например, можно записать так:

fso = new ActiveXObject("Scripting.FileSystemObject");
fso.CopyFolder ("c:\\mydocuments\\letters\\*", "c:\\tempfolder\\");

Но недопустима следующая запись:

fso = new ActiveXObject("Scripting.FileSystemObject");
fso.CopyFolder ("c:\\mydocuments\\*\\*", "c:\\tempfolder\\");

Если аргумент-источник содержит групповые символы, или аргумент-приемник содержит символ разделения каталогов (\), предполагается, что каталог назначения – существующая на диске папка, в которую копируются все папки и подпапки из источника. Иначе считатся, что приемник – каталог, который необходимо создать. В этом случае, при копировании отдельных каталогов возможно четыре варианта развития событий:
  • Если destination не существует на диске, каталог source и все его компоненты будут скопированы. Это стандартная ситуация.
  • Если destination существует в пути назначения как файл, возникает ситуация ошибки.
  • Если destination существует как каталог, возможно нормальное копирование каталога-источника и всех его подкаталогов. Если файлы, расположенные в источнике, уже существуют в destination, возпожно возникновение ошибки, если параметр overwrite установлен в false. В противном случае все существующие файлы будут перезаписаны и их содержание заменено на содержание файлов из источника.
  • Если destination – каталог с атрибутом read-only, то при попытке перезаписать существующие файлы с такм-же атрибутом возникает ошибка.
Возникновение ошибки также возможно в случае, если в строке source используются групповые символы, но при этом ни один из каталогов (файлов) не соответсвует указанному шаблону.

Метод CopyFolder прерывает свое выполнение сразу после первой встреченной ошибки. В системе не предусмотрена возможность восстановить какие-то уже сделанные изменения в случае возникновения ошибки.


CreateFolder Метод
Создание каталога.

Синтаксис
object.CreateFolder(foldername)

Аргументы
object - Обязательный. Всегда имя объекта FileSystemObject.
foldername -Обязательный. Строковое выражение, идентифицирующее создаваемый каталог.

Замечания
Если каталог, указанный для создания уже существует, возникает ошибка.

Пример:
// файл sam7_4.js
// использования метода CreateFolder
// для создания каталога:
var fso = new ActiveXObject("Scripting.FileSystemObject");
var a = fso.CreateFolder("c:\\new folder");
WScript.Quit(0);
// конец файла примера

продолжение в следующем выпуске
Ссылка на архив предыдущих выпусков: http://www.b-soft.ru/prof/index.shtml
Статистика рассылки: http://subscribe.ru/stat/comp.soft.prog.javascript/

Автор и ведущий рассылки Игорь Балезин
Возможно-ли зарабатывать в Интернет?


http://subscribe.ru/
E-mail: ask@subscribe.ru
Отписаться Рейтингуется SpyLog

В избранное