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