Я использую 7za.exe, которая работает только с командной строкой;
ее не нужно устанавливать, достаточно скопировать файл в 'некий каталог'.
Сайт архиватора: 7-Zip Copyright (C) 1999-2008 Igor Pavlov.
В общем случае алгоритм архивации следующий:
- создаю временный текстовый файл с кодировкой "windows" (по умолчанию),
в который добавляю строки с шаблонами, по которым б.происходить архивация, например:
Т =СоздатьОбъект("Текст");
Т.ДобавитьСтроку(ПутьКБ+"*.dbf");
Т.ДобавитьСтроку(ПутьКБ+"1cv7.MD");
Т.ДобавитьСтроку(ПутьКБ+"1cv7.DD");
Т.ДобавитьСтроку(ПутьКБ+"1cv7.ORD");
Т.ДобавитьСтроку(ПутьКБ+"1cv7.SPL");
Т.ДобавитьСтроку(ПутьКБ+"UsrDef\Users.usr");
Т.ДобавитьСтроку(ПутьКБ+"EXTFORMS\*78");
Т.Записать(КаталогИБ()+"arch_para m.txt");
строки шаблонов при этом могут содержать пробелы и символы кириллицы
- формирую командную строку:
СтрКоманда=""""+ПутьКАрхиватору+""" a -tzip """+КаталогАрхива+ИмяФайлаАрхива+""" @"""+ВремФайл+""" -scsWIN";
в ней:
- все пути обрамлены кавычками, на тот случай, если встретятся наименования каталогов или файлов с пробелами;
- ПутьКАрхиватору - это 'некий каталог'\7za.exe
- параметр "-tzip" - указывает, что создаваемый архив будет формата ".zip";
- (КаталогАрхива+ИмяФайлаАрхива) - полный путь к создаваемому файлу архива;
- ВремФайл - в моем случае файл с шаблонами КаталогИБ()+"arch_param.txt"
- параметр "-scsWIN" - указывает, что кодировка ВремФайл - "windows"
- и наконец, приходится сформировать выполняемый файл с этой командной строкой,
поскольку в общем случае такая командная строка не выполняется непосредственно,
батник же заработал. Связано это, скорее всего, с присутствием символов кириллицы.
Т =СоздатьОбъект("Текст");
Т.КодоваяСтраница(1); // Dos кодировка
Т.ДобавитьСтроку(СтрКоманда);
ФайлБатник=КаталогВременныхФайлов()+"tempcs.bat";
Т.Записать(ФайлБатник);
КомандаСистемы(ФайлБатник);
Главное преимущество такого способа запуска архивации на мой взгляд следующее:
если у в каком-либо модуле присутствует строка КомандаСистемы(...), то программа, в отличии от, в частности, от ЗапуститьПриложение(...), не переходит к следующему оператору модуля до тех пор, пока не закончится архивация. А после этого уже можно приступать к действиям с новым, сформированным архивом: отправлять по почте, копировать куда либо, архивировать что-нибудь еще и т.д.
Более подробно о командах и параметрах 7-Zip можно почитать в "7-zip.chm", который прилагается к программе.