Для записи, чтения 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.Восстанавливать, "Пароль"); КонецЦикла; КонецПроцедуры
|