РежимВосстановленияПутейФайлаАрхива.Восстанавливать

Свойства · Restore

Требуется восстанавливать пути при извлечении элемента из архива.

Полное описание, параметры и ограничения

РежимВосстановленияПутейФайлаАрхива.Восстанавливать (ArchiveFileRestoreFilePathsMode.Restore)

РежимВосстановленияПутейФайлаАрхива (ArchiveFileRestoreFilePathsMode)

Восстанавливать (Restore)

Доступен, начиная с версии 8.3.26.

Описание:
Требуется восстанавливать пути при извлечении элемента из архива.
Использование в версии:

Доступен, начиная с версии 8.3.26.

Методическая информация

Практические примеры

Использовать РежимВосстановленияПутейФайлаАрхива.Восстанавливать со своим архивом

Конкретный режим передаётся документированному конструктору / методу на собственном файле и новом выходном пути. Неподдерживаемые форматы записи не выдумываются.

Где и как запускать

Тело серверной процедуры своей обработки / процедуры толстого клиента; только заранее подготовленные собственные файлы.

Подготовка

  1. В своём архиваторе создайте собственный ZIP C:\1CStudy\book.zip ровно с одним своим текстовым файлом chapter/book.txt. Убедитесь, что внутри нет абсолютных путей, .., ссылок и чужих файлов.

  2. Основной код выполняется на сервере своей обработки / в толстом клиенте и извлекает только этот известный элемент своего архива в новый временный каталог.

  3. Не используйте скачанный неизвестный архив. Код не является безопасным распаковщиком недоверенных архивов и не заменяет проверку их путей.

КаталогВывода = ПолучитьИмяВременногоФайла();
СоздатьКаталог(КаталогВывода);
Архив = Новый ЧтениеФайлаАрхива("C:\1CStudy\book.zip");
Попытка
    СвойФайл = Архив.Элементы[0];
    Архив.Извлечь(СвойФайл, КаталогВывода, РежимВосстановленияПутейФайлаАрхива.Восстанавливать);
Исключение
    Архив.Закрыть();
    ВызватьИсключение;
КонецПопытки;
Архив.Закрыть();
Сообщить(КаталогВывода);

Разбор по шагам

  1. Подготовьте только указанные свои файлы и выполняйте код на компьютере, где они доступны.

  2. Передайте выбранный режим в точную позицию конструктора или метода.

  3. Проверьте собственный результат по показанному пути, не подставляя рабочий архив для перезаписи.

Как проверить результат

  1. Восстанавливать сохраняет собственную подпапку chapter, НеВосстанавливать помещает известный book.txt без исходной структуры.

  2. Читатель закрывается и при исключении. Выходной каталог и свой архив остаются для ручной проверки; пользователь удаляет только их, не родительские каталоги.

Ожидаемый результат

Режим применён к конкретному собственному архиву с известным составом и способом проверки.

На что обратить внимание

  1. ЗаписьФайлаАрхива поддерживает запись ZIP; наличие RAR / SevenZIP в общем перечислении не разрешает такую запись.

  2. При ошибке новый временный результат может остаться неполным; удаляйте вручную только свой явно показанный путь, без рекурсивного удаления широких каталогов.

  3. При сборке HTML архивы не создавались и не извлекались, код 1С не выполнялся.

Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.

Не хотите разбираться сами?

Адаптируем это решение под вашу базу. Оценка бесплатно.

Оставить задачу

1С, 1С:Предприятие — товарные знаки ООО «1С». Сайт не является официальным представительством фирмы «1С» и не аффилирован с ней.