HelpF.pro

ZIP-архив Создание

Для того чтобы записать файлы в ZIP-архив необходимо выполнить несколько простых действий:
* Создать архив с необходимыми параметрами, в который будут помещаться файлы.
* Поместить в архив необходимые файлы.
* Записать архив.

Создание объекта ЗаписьZIPФайла можно осуществить двумя путями - создать инициализированный объект или создав неинициализированный объект вызвать у него метод Открыть. В обоих случаях состав параметров является одинаковым. В самом простом случае требуется указать только имя файла, куда будет записан архив.

Для создания нового архива требуется указать:
* Имя файла, куда будет записан архив. Этот параметр является обязательным. Если такой файл уже существует на диске, он будет перезаписан!Пароль доступа к архиву. Если этот параметр пропущен или равен пустой строке, то шифрование производится не будет!
* Комментарий к архиву.
* Метод сжатия файлов в архиве. На выбор предоставляется возможность скопировать файлы в архив без сжатия или сжать их. По умолчанию файлы сжимаются.
* Уровень сжатия файлов в архиве. Можно выбирать между минимальным, оптимальным и максимальным сжатием. По умолчанию используется оптимальное сжатие
* Метод шифрования. Можно защитить архив методом шифрования ZIP 2.0, совместимым с большинством программ, или с помощью шифрования на основе новейшего стандарта AES с различной длиной ключа (128, 192 и 256 бит). Однако следует помнить, что данный метод может быть не совместим с некоторыми программами архивирования, например WinRAR.

После создания объекта необходимо добавить в него необходимые файлы, воспользовавшись методом Добавить. Он принимает на вход 3 параметра:
1. Полное имя файла или маску.
2. Режим сохранения путей к файлу. Можно сохранять полные пути, не сохранять пути совсем или сохранять пути относительно каталога. Режим обработки подкаталогов. Можно обрабатывать подкаталоги рекурсивно или не обрабатывать их. Параметр имеет смысл, если в качестве имени указана маска.

После того, как все необходимые файлы добавлены, можно записать архив на диск, воспользовавшись методом Записать().
Важно понимать, что до выполнения этого метода, никаких реальных действий по созданию архива не происходит. После записи архива на диск объект закрывает его и для работы со следующим архивом необходимо выполнить метод Открыть().

Пример:
Код 1C v 8.х
 Сейчас = ТекущаяДата();

// Создадим объект записи ZIP-архива
ЗаписьZIP = Новый ЗаписьZipФайла(ИмяАрхивногоФайла,
ПарольАрхивногоФайла,
"" + МетодСжатия + Символы.ПС + УровеньСжатия + Символы.ПС + МетодШифрования,
МетодСжатия,
УровеньСжатия,
МетодШифрования);

// Добавим необходимые файлы в архив
ЗаписьZIP.Добавить("c:\MyFiles\File1.xml", РежимСохраненияПутейZIP.НеСохранятьПути);
ЗаписьZIP.Добавить("c:\MyFiles\MoreFiles\*.xml", РежимСохраненияПутейZIP.СохранятьОтносительныеПути, РежимОбработкиПодкаталоговZIP.НеОбрабатывать);

// Запишем архив на диск
ЗаписьZIP.Записать();

// Сообщим время, которое потребовалось для работы.
Сообщить("Упаковка заняла " + ТекущаяДата() - Сейчас) + " секунд(ы)");


Особенности упаковки файлов по маске

Остановимся подробнее на особенностях упаковки файлов по маске.
Предположим, что у нас есть следующий файлы, которые нам необходимо поместить в архив:
c:\ZipTest\11.xls
c:\ZipTest\12.xls
c:\ZipTest\13.xls
c:\ZipTest\MoreFiles\14.xls
c:\ZipTest\MoreFiles\15.xls
c:\ZipTest\MoreFiles\16.xls

Код 1C v 8.х
 // Добавим необходимые файлы в архив
ЗаписьZIP.Добавить("c:\ZipTest\11.xls", РежимСохраненияПутейZIP.СохранятьПолныеПути);
ЗаписьZIP.Добавить("c:\ZipTest\12.xls", РежимСохраненияПутейZIP.СохранятьОтносительныеПути);
ЗаписьZIP.Добавить("c:\ZipTest\13.xls", РежимСохраненияПутейZIP.НеСохранятьПути);

В результирующий архив будут помещены следующие файлы:
\ZipTest\11.xls
\12.xls
\13.xls

Код 1C v 8.х
 // Добавим необходимые файлы в архив
ЗаписьZIP.Добавить("c:\ZipTest\*.xls", РежимСохраненияПутейZIP.СохранятьОтносительныеПути, РежимОбработкиПодкаталоговZIP.НеОбрабатывать);

В результирующий архив будут помещены следующие файлы:
\ZipTest\11.xls
\ZipTest\12.xls
\ZipTest\13.xls

Код 1C v 8.х
 // Добавим необходимые файлы в архив
ЗаписьZIP.Добавить("c:\ZipTest\*.xls", РежимСохраненияПутейZIP.СохранятьОтносительныеПути, РежимОбработкиПодкаталоговZIP.ОбрабатыватьРекурсивно);

В результирующий архив будут помещены следующие файлы:
\ZipTest\11.xls
\ZipTest\12.xls
\ZipTest\13.xls
\ZipTest\MoreFiles\14.xls
\ZipTest\MoreFiles\15.xls
\ZipTest\MoreFiles\16.xls
Опубликовано на сайте: https://HelpF.pro
Прямая ссылка: https://HelpF.pro/faq8/view/974.html