HelpF.pro

ZIP-архив Чтение

Для того чтобы прочитать файлы из ZIP-архива необходимо выполнить несколько простых действий:
- Открыть необходимый архив
- Распаковать файлы

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

Для открытия архива требуется указать:
Имя файла, который требуется открыть. Этот параметр является обязательным.
Пароль доступа к архиву.

После того, как архив успешно открыт, можно получить информацию о файлах, хранящихся внутри него. Для этого у объекта ЧтениеZIPФайла предусмотрено свойство Элементы, которое предоставляет доступ к коллекции элементов ZIP файла.

Для каждого элемента можно получить разнообразную информацию о его имени, времени его модификации, его атрибутах, а также узнать является ли данный элемент зашифрованным.

После получения информации о элементах их можно распаковать на диск. Это возможно сделать двумя методами:
Воспользоваться методом ИзвлечьВсе().
Воспользоваться методом Извлечь().

Метод ИзвлечьВсе() распаковывает все файлы в архиву по указанному пути. Второй параметр данного метода определяет возможность восстановления исходных путей файлов.

Метод Извлечь() распаковывает указанный элемент коллекции из свойства Элементы по указанному пути. Второй параметр данного метода аналогичен тому же параметру метода ИзвлечьВсе(). Наибольший интерес представляет третий параметр данного метода - Пароль. В нем можно указать индивидуальный пароль для элемента архива, в случае если он зашифрован паролем отличным от других файлов.

После того, как архив нам больше не нужен можно завершить работу с ним вызвав метод Закрыть().
Код 1C v 8.х
 Сообщить("Распаковка файла - " + ИмяАрхивногоФайла);
Сейчас = ТекущаяДата();

// Откроем файл для чтения
ЧтениеZIP = Новый ЧтениеZipФайла(ИмяАрхивногоФайла,
ПарольАрхивногоФайла);

// Сообщим комментарий архива
Сообщить("Комментарий:");
Сообщить(ЧтениеZIP.Комментарий);

// Распакуем все файлы из архива
ЧтениеZIP.ИзвлечьВсе(ПапкаНазначения, РежимВосстановленияПутейФайловZIP.НеВосстанавливать);

// Распакуем файлы по одиночке
Для Каждого Элемент Из ЧтениеZIP.Элементы Цикл
Сообщить("Распаковка файла:" + Элемент.ПолноеИмя);
ЧтениеZIP.Извлечь(Элемент,
ПапкаНазначения,
РежимВосстановленияПутейФайловZIP.Восстанавливать,
? (Элемент.Зашифрован, ПарольАрхивногоФайла, ""));
КонецЦикла;

ЧтениеZIP.Закрыть();

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

Опубликовано на сайте: https://HelpF.pro
Прямая ссылка: https://HelpF.pro/faq82/view/975.html