Каталог решений - Архивация файлов при помощи программы 7-Zip

Архивация файлов при помощи программы 7-Zip

Архивация файлов при помощи программы 7-Zip

В наличии

Пример архивации при помощи командной строки для 7za.exe.

Категория:

Описание

Я использую 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», который прилагается к программе.

has been added to your cart:
Оформление заказа