Пример: СОМ-объект для архивирования файлов

Пример: СОМ-объект для архивирования файлов

Представим себе следующую ситуацию. Имеется несколько каталогов на жестком диске, в которых хранятся рабочие файлы разных пользователей. Необходимо каждый день с помощью программы-архиватора arj.exe делать архивы этих файлов в заданный каталог, при этом имя архивного файла должно соответствовать шаблону ппММДД.arj", где пп — уникальный для каждого пользователя префикс, ММ — текущий месяц, ДД — текущий день.

Мы создадим компонент-сценарий DateArc.WSC, с помощью свойств и методов которого можно будет выполнить поставленную задачу.

Начнем мы с того, что определимся, какие именно свойства и методы будет содержать создаваемый объект (табл. 10.1).

Таблица 10.1. Свойства и методы объекта DateArc.WSC

Название Свойство/метод Режим доступа Описание SFrom Свойство Чтение/запись Исходный каталог для архивирования SArch Свойство Чтение/запись Каталог, в котором хранятся архивные файлы SPref Свойство Чтение/запись Префикс файла-архива SMask Свойство Чтение/запись Маска, по которой отбираются файлы для архивирования SErrMess Свойство Чтение Текст сообщения об ошибке FilesToArchiv() Метод   Метод, осуществляющий архивирование файлов

Имея зарегистрированный в системе СОМ-объект с такими свойствами и методами, несложно написать сценарий (назовем его RunArj.js), в котором создавался бы экземпляр объекта DateArc.WSC и производилось с помощью метода FilesToArchiv() архивирование файлов из исходного в целевой каталог (листинг 10.2).

Листинг 10.2. Архивирование файлов с помощью СОМ-объекта DateArc.WSC

/********************************************************************/

/* Имя: RunArj.js                                                   */

/* Язык: JScript                                                    */

/* Описание: Архивирование файлов с помощью COM-объекта DateArc.WSC */

/********************************************************************/

//Объявляем переменные

var

 DateArc,  //Экземпляр объекта DateArc.WSC

 Result;   //Результат выполнения метода FilesToArchiv()

//Инициализируем константы для диалоговых окон

var vbCritical=16,vbInformation=64;

//Создаем объект WshShell

WshShell = WScript.CreateObject("WScript.Shell");

//Создаем объект DateArc.WSC

DateArc=WScript.CreateObject("DateArc.WSC");

DateArc.SFrom="D:\1";  //Исходный каталог

DateArc.SArch="D:\2";  //Каталог, в который будут архивироваться

                        //файлы

DateArc.SPref="aa";  //Префикс для файл-архива

DateArc.SMask="*.*"; //Маска, по которой будут отбираться файлы

                     //для архивирования

//Запускаем метод FilesToArchiv()

Result=DateArc.FilesToArchiv();

if (!Result)

 //Если возникла ошибка, выводим соответствующее сообщение

 WshShell.Popup(DateArc.SErrMess, 0, "Архивирование файлов", vbCritical);

else  WshShell.Popup("Архивирование завершено успешно!", 0,

 "Архивирование файлов", vbInformation);

/*************  Конец *********************************************/