Создание архива
Для того чтобы записать файлы в ZIP-архив, необходимо выполнить несколько простых действий:
- создать архив с необходимыми параметрами, в который будут помещаться файлы;
- поместить в архив необходимые файлы;
- записать архив.
Рассмотрим эти действия на следующем примере (листинг 6.121).
Листинг 6.121. Пример записи файла в ZIP-архив
Архив = Новый ЗаписьZIPФайла("e:\test\архив.zip", "", "", МетодСжатияZIP.Сжатие, УровеньСжатияZIP.Максимальный,
МетодШифрованияZIP.Zip20, КодировкаИменФайловВZipФайле.UTF8);
Архив.Добавить("c:\temp\document.xml", РежимСохраненияПутейZIP.НеСохранятьПути);
Архив.Добавить("c:\temp\index.html", РежимСохраненияПутейZIP.СохранятьОтносительныеПути);
Архив.Записать();
Создание объекта ЗаписьZIPФайла можно осуществить двумя путями:
- создать инициализированный объект (см. листинг 6.121);
- создать неинициализированный объект и вызвать у него метод Открыть() (файл архива не должен существовать в этом случае) – листинг 6.122.
Листинг 6.122. Пример использования неинициализированного объекта «ЗаписьZIPФайла»
Архив = Новый ЗаписьZIPФайла();
Архив.Открыть("e:\test\архив.zip", "", "", МетодСжатияZIP.Сжатие, УровеньСжатияZIP.Максимальный,
МетодШифрованияZIP.Zip20, КодировкаИменФайловВZipФайле.UTF8);
При создании нового архива (либо конструктором, либо методом Открыть()) требуется указать:
- Имя файла, куда будет записан архив. Этот параметр является обязательным. Если такой файл уже существует на диске, он будет перезаписан (в момент вызова метода Записать()).
- Пароль доступа к архиву. Если этот параметр пропущен или равен пустой строке, то шифрование производиться не будет.
- Комментарий к архиву.
- Метод сжатия файлов в архиве. На выбор предоставляется возможность скопировать файлы в архив без сжатия или сжать их. По умолчанию файлы сжимаются.
- Уровень сжатия файлов в архиве. Можно выбирать между минимальным, оптимальным и максимальным сжатием. По умолчанию используется оптимальное сжатие.
- Метод шифрования. Можно защитить архив методом шифрования ZIP20, совместимым с большинством программ, или с помощью шифрования на основе новейшего стандарта AES с различной длиной ключа (128, 192 и 256 бит). Однако следует помнить, что данный метод может быть несовместим с некоторыми программами архивирования старых версий.
- Способ кодировки имен файлов внутри ZIP-файла. Указанный способ кодировки имеет приоритет над значением параметра FileNamesEncodingInZipFile файла conf.cfg.
После создания объекта необходимо добавить в него сжимаемые файлы. Для этой цели используется метод Добавить(). У него 3 параметра:
- Полное имя файла или маска.
- Режим сохранения путей к файлу. Можно сохранять полные пути, не сохранять пути совсем или сохранять пути относительно каталога.
- Режим обработки подкаталогов. Можно обрабатывать подкаталоги рекурсивно или не обрабатывать их. Параметр имеет смысл, если в качестве имени указана маска.
После того как все необходимые файлы добавлены, можно записать архив на диск, воспользовавшись методом Записать().
Важно понимать, что до выполнения этого метода никаких реальных действий по созданию архива не происходит. После записи архива на диск объект закрывает его, и для работы со следующим архивом необходимо выполнить метод Открыть().