1CLenta.ru  

Архивирование ZIP

Программирование системы     23.09.2016 10:45     5105

Для записи, чтения ZIP архивов во встроенном языке программирования 1С, предназначены специальные объекты "ЗаписьZIPФайла" и "ЧтениеZIPФайла". Данные объекты работают независимо от установленных архиваторов, так как используют встроенные средства ОС Windows.

ZIP - это формат для архивирования файлов. Формат был разработан Филом Кацем в 1989 году. При сжатии могут использоваться различные алгоритмы. Deflate - является одним из популярных алгоритмов.

Создать ZIP архив (архивирование файлов)


Для архивирования файлов в 1С:Предприятии предназначен объект "ЗаписьZIPФайла", встроенного языка программирования. Функция Открыть() или конструктор объекта ЗаписьZIPФайла(<ИмяФайла>, <Пароль>, <Комментарий>, <МетодСжатия>, <УровеньСжатия>, <МетодШифрования>) позволяют задать ряд настроек создаваемого архива.

ИмяФайла - путь к файлу создаваемого архива
Пароль - если требуется установить на архив пароль
Комментарий - описание ZIP файла
МетодСжатия - определяется метод сжатия данных (Копирование, Сжатие)
УровеньСжатия - определяет степень сжатия (Максимальный, Минимальный, Оптимальный)
МетодШифрования - AES128 (AES128), AES192 (AES192), AES256 (AES256), Zip20 (Zip20)

Процедура СоздатьАрхивZIP()

ЗаписьZIP = Новый ЗаписьZipФайла("C:ИмяФайла.zip",
"Пароль",
"Комментарий",
МетодСжатияZIP.Сжатие,
УровеньСжатияZIP.Максимальный,
МетодШифрованияZIP.Zip20);

//Добавление файла по полному пути
ЗаписьZIP.Добавить("C:ImageImage.jpg");

//Добавление файлов по маске
ЗаписьZIP.Добавить("C:Image*.jpg");

//Запись архива
ЗаписьZIP.Записать();

КонецПроцедуры


Распаковать ZIP архив


Для того чтобы разархивировать в 1С существует объект "ЧтениеZipФайла". С помощью функции Открыть() или конструктора объекта ЧтениеZipФайла(<ИмяФайла>, <Пароль>) можно задать параметры распаковываемого архива.

ИмяФайла - путь к файлу архива
Пароль - если на архив установлен пароль

Процедура РаспаковатьАрхивZIP()

ЧтениеZIP = Новый ЧтениеZipФайла("C:ИмяФайла.zip", "Пароль");

//Получить комментарий к архиву
Комментарий = ЧтениеZIP.Комментарий;

//Извлечь все файлы
Директория = "C:Image";
ЧтениеZIP.ИзвлечьВсе(Директория);

//Извлечение файлов по одному
Для каждого Элемент Из ЧтениеZIP.Элементы Цикл

ЧтениеZIP.Извлечь(Элемент, Директория,
РежимВосстановленияПутейФайловZIP.Восстанавливать,
"Пароль");

КонецЦикла;

КонецПроцедуры

Комментарии (0)