Файл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 архива.