ЧтениеZip
Стд::Архивация::ЧтениеZip
Объект для потокового чтения ZIP-архива.
Сравнение
Ссылочное
Иерархия типа
Базовые типы: Объект
Примеры
Общие примеры
метод РаспаковатьАрхив(КаталогРаспаковки: Файл, ВходнойАрхив: Файл, Пароль: Строка)
    // Создание потока чтения файла архива
    исп АрхивПотокЧтения = ВходнойАрхив.ОткрытьПотокЧтения()
    пер ЧтениеZip = новый ЧтениеZip(АрхивПотокЧтения, Пароль)
        
    пока ЧтениеZip.Следующий()
        // Получение элемента архива
        пер ЭлементZip = ЧтениеZip.ПолучитьЭлемент()
        
        если не ЭлементZip.ЭтоКаталог()
            // Создание объекта файла, в который будет выполнена распаковка элемента архива.
            // ПутьВАрхиве содержит полный путь со всеми каталогами и именем файла, все каталоги будут созданы,
            // поэтому пропускаются элементы архива, которые являются каталогами
            пер Файл = Файлы.Создать(новый Файл(КаталогРаспаковки.Путь, [ЭлементZip.ПутьВАрхиве]))
            
            // Открытие потока записи, будет закрыт автоматически, так как объявлен через "исп"
            исп ФайлПотокЗаписи = Файл.ОткрытьПотокЗаписи()
            
            // Запись байтов элемента архива в поток записи целевого файла
            ФайлПотокЗаписи.Записать(ЧтениеZip.ПолучитьПотокЭлемента().ПрочитатьКакБайты())
        ;
    ;
;
Конструкторы
ЧтениеZip
ЧтениеZip(
Поток: ПотокЧтения,
Пароль: Секрет|Строка = "",
КодировкаИменФайлов: Кодировка|Строка = Кодировка.Utf8)Поток и пароля к архиву Пароль.
КодировкаИменФайлов используется для распаковки существующих файлов в архиве, не для добавления новых файлов.
Значение используется, если путь элемента архива не сохранен в utf8 кодировке внутри архива.
Поддерживаются только архивы с элементами сжатыми по алгоритму Deflate или Store (без сжатия). Другие алгоритмы, в частности Deflate64 или BZip2, не поддерживаются.
Методы
ПолучитьПотокЭлемента
ПолучитьПотокЭлемента(): ПотокЧтен ияИсключения
ИсключениеНедопустимоеСостояние - при возникновении ошибки.
ПолучитьЭлемент
ПолучитьЭлемент(): ЭлементZipИсключения
ИсключениеНедопустимоеСостояние - если элемент невозможно получить.
Следующий
Следующий(): БулевоИсключения
ИсключениеВводаВывода - при возникновении ошибки чтения и разбора элемента архива.