Link Search Menu Expand Document

ФайлZip

Стд::Архивация::ФайлZip
Базовые типы: Объект

Иерархия типа

ФайлZip
Объект

Объект для файловой работы с ZIP-архивом.

Методы выбрасывают исключения: ИсключениеВводаВывода - если произошли ошибки чтения/записи. ИсключениеДоступаКФайлу - при невозможности получить доступ к файлу архива.

Сравнение ссылочное


Примеры

метод ЗаписатьСШифрованием()
    пер Архив = новый ФайлZip(Файлы.ПолучитьДомашнийКаталог().Путь + "/archive.zip", "password") // Создали объект взаимодействия с архивом
    // Благодаря паролю можно распаковывать файлы (если архив уже существует и файлы зашифрованы) и добавлять новые в зашифрованном виде МетодШифрованияПоУмолчанию = МетодШифрованияZip.Zip20
 
    пер УровеньСжатияПоУмолчанию = УровеньСжатияZip.Максимальный // Для новых файлов установим максимальный уровень сжатия, иначе значение будет Нормальный
    пер МетодШифрованияПоУмолчанию = МетодШифрованияZip.AES256 // Для новых файлов установим метод шифрования, иначе значение будет Zip20 (так как открыли архив с паролем)
     
    Архив.Добавить(Файлы.ПолучитьДомашнийКаталог().Путь + "/КаталогСФайламиДляСжатия", "", УровеньСжатияПоУмолчанию, МетодШифрованияПоУмолчанию) // Добавим каталог с файлами
     
    пер ФайлДляСжатия = новый Файл("ФайлДляСжатия.txt", Файлы.ПолучитьДомашнийКаталог())
 
    Архив.Добавить(ФайлДляСжатия, "", УровеньСжатияПоУмолчанию, МетодШифрованияПоУмолчанию); // Добавим в корень файл
    Архив.Добавить(ФайлДляСжатия.ОткрытьПотокЧтения(), "КаталогСФайламиДляСжатия/ФайлДляСжатия_Копия", УровеньСжатияПоУмолчанию, МетодШифрованияПоУмолчанию) // Можем добавить через поток
    Архив.УстановитьКомментарий("Архив с КаталогСФайламиДляСжатия и файлом. Сделана копия. Пароль: password")
     
    // Закрывать Архив или сохранять изменения не нужно. Все команды работают сразу
;
метод НайтиИПереписатьФайл(ПутьКАрхиву: Строка, ИмяФайла: Строка, НовыеДанные: ПотокЧтения)
    пер Архив = новый ФайлZip(ПутьКАрхиву)
 
    пер Элементы = Архив.Найти(ИмяФайла) // Не помним точный путь к файлу в архиве, но помним имя
    если Элементы.Размер() > 1
        выбросить новый ИсключениеНедопустимыйАргумент()
    ;
 
    пер ИскомыйЭлемент = Элементы.Получить(0)
     
    // Заменяем файл
    Архив.Удалить(ИскомыйЭлемент)
    пер КолВо = Архив.Элементы().Размер()
    Архив.Добавить(НовыеДанные, ИскомыйЭлемент.ПутьВАрхиве, УровеньСжатия.Максимальный)
;

Конструкторы

ФайлZip

ФайлZip(
  Архив: Строка,
  Пароль: Строка = "")

Создает объект файловой работы с ZIP-архивом на основании пути к архиву Архив и пароля Пароль. Рекомендуется использовать в качестве пароля символы латинского алфавита и цифры для совместимости с другими архиваторами. Поддерживаются только архивы с элементами сжатыми по алгоритму Deflate или Store (без сжатия). Другие алгоритмы, в частности Deflate64 или BZip2, не поддерживаются.


Методы

ВСтроку

ВСтроку(): Строка
Переопределение: ВСтроку

Добавить

Добавить(
  Источник: Файл|Строка,
  ПутьВАрхиве: Строка = "",
  УровеньСжатия: УровеньСжатияZip = УровеньСжатияZip.Нормальный,
  МетодШифрования: МетодШифрованияZip? = Неопределено)
Перегрузка:
Добавить(Источник: ПотокЧтения, ПутьВАрхиве: Строка, УровеньСжатия: УровеньСжатияZip = УровеньСжатияZip.Нормальный, ВремяИзменения: Момент? = Неопределено, МетодШифрования: МетодШифрованияZip? = Неопределено)

Добавляет файл Источник в существующий архив по пути в архиве ПутьВАрхиве, если архива нет, то создает его. Для каталога добавляет в архив сам каталог и его содержимое. Уровень сжатия УровеньСжатия и метод шифрования МетодШифрования.


Добавить

Добавить(
  Источник: ПотокЧтения,
  ПутьВАрхиве: Строка,
  УровеньСжатия: УровеньСжатияZip = УровеньСжатияZip.Нормальный,
  ВремяИзменения: Момент? = Неопределено,
  МетодШифрования: МетодШифрованияZip? = Неопределено)
Перегрузка:
Добавить(Источник: Файл|Строка, ПутьВАрхиве: Строка = “”, УровеньСжатия: УровеньСжатияZip = УровеньСжатияZip.Нормальный, МетодШифрования: МетодШифрованияZip? = Неопределено)

Добавляет содержимое потока Источник в архив по данному пути ПутьВАрхиве, учитывая уровень сжатия УровеньСжатия, время изменения элемента ВремяИзменения и метод шифрования МетодШифрования. По умолчанию время изменения элемента - текущее на момент начала записи.


ЕстьЗашифрованныеФайлы

ЕстьЗашифрованныеФайлы(): Булево

Возвращает признак зашифрованности архива. Архив считается зашифрованным, если хотя бы один файл-элемент зашифрован.


Извлечь

Извлечь(
  Элемент: ЭлементZip|Строка,
  МестоНазначения: Файл|Строка)

Распаковывает элемент архива Элемент по пути МестоНазначения.


ИзвлечьВсе

ИзвлечьВсе(
  МестоНазначения: Файл|Строка,
  ВосстанавливатьКаталоги: Булево = Истина)

Распаковывает весь архив по пути МестоНазначения. Если ВосстанавливатьКаталоги == Ложь, то распакуются только файлы.


Найти

Возвращает все элементы архива, в которых содержится подстрока ЧастьПути. При этом разделители в пути не важны. Регулярный выражения не поддерживаются.


ПолучитьКомментарий

ПолучитьКомментарий(): Строка

Возвращает комментарий к архиву.


Удалить

Удалить(Элемент: ЭлементZip|Строка)

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


УстановитьКомментарий

УстановитьКомментарий(Комментарий: Строка)

Устанавливает комментарий Комментарий к архиву.


Элементы

Возвращает все элементы zip архива.


Список унаследованных методов

Объект