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