Добрый день, коллеги! Мне нужно сохранить двоичные данные в ZIP архив с учетом подкаталога. Написал следующий код:
ПотокZIP = Новый ПотокВПамяти();
Архиватор = Новый ЗаписьZipФайла(ПотокZIP);
(0) "ВрКаталог = ВрКаталог + "Тест\";" + тест нужен для удаления всех созданных файлов
При использовании "РежимСохраненияПутейZIP.СохранятьОтносительныеПути" в добавлении файла в архиватор - не сохраняет подкатолог "Каталог_1".
Если изменить на Сохранятьполныепути - сохраняет весь путь от диска С до папки темп.
Мне нужно получить итог такой:
ZIP Архив - Каталог_1 - Файлы
Вот так выглядит ZIP архив, который у меня получается. При использовании режима сохранения "СохранятьОтносительныеПути" - пути с папкой темп нет, если использовать "СохранятьПолныеПути" - получается вот такой путь в архиве
Во временном каталоге все сохраняется как нужно, просто не нужен полный путь до него, а буквально требуется скопировать все каталоги из "Тест" в ZIP архив
При добавлении одиночного файла признак сохранения относительного пути бесполезен. Готовь отдельный каталог с файлами и нужной структурой, а потом по маске складывай этот каталог в архив. Получишь относительные пути.
(3) Получилось добиться необходимого результата, благодарю
Если кому-то пригодится, вот итоговый код:
ПотокZIP = Новый ПотокВПамяти();
Архиватор = Новый ЗаписьZipФайла(ПотокZIP);
Для Каждого СтрокаЭД Из РезультатФормирования.ТаблицаЭД Цикл
Контрагент = СтрокаЭД.Контрагент;
ПолныйПуть = ВрКаталог + Контрагент.Наименование + "\"; // Путь с учетом подкаталога контрагента
КаталогСуществует = Новый Файл(ПолныйПуть);
Если НЕ КаталогСуществует.Существует() Тогда
СоздатьКаталог(ПолныйПуть);
КонецЕсли;
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший