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