|
Объект для записи ZIP-архива в поток.
|
Я
|
|
mistergluck 25.02.21 - 17:53 | Всем привет, на сайте ИТС
Нашел такой метод: (но конфигуратор не понимает такой код, да и сам объект ЗаписьZip)
Это планируется сделать в будущих версиях или что-то можно подключить, как в с# какую нибудь библиотеку
ЗаписьZip (ZipWriter)
Объект для записи ZIP-архива в поток.
Пример
метод СформироватьАрхив(Каталог: Файл, ВыходнойАрхив: Файл)
исп ПотокЗаписи = ВыходнойАрхив.ОткрытьПотокЗаписи()
пер ЗаписьZip = новый ЗаписьZip(ПотокЗаписи, "password",
УровеньСжатияZip.Нормальный, МетодШифрованияZip.Aes256)
для Файл из Каталог.Дочерние
если Файл.Расширение == "doc"
ЗаписьZip.Добавить(Файл.ОткрытьПотокЧтения(), Файл.Имя)
;
;
ЗаписьZip.Записать()
; |
ДенисЧ 1 - 25.02.21 - 17:54 | ЗаписьZipФайла (ZipFileWriter)
На основании потока
Синтаксис:
Новый ЗаписьZipФайла(<Поток>, <Пароль>, <Комментарий>, <МетодСжатия>, <УровеньСжатия>, <МетодШифрования>)
Когда копируешь - внимательней надо быть ))) |
polosov 2 - 25.02.21 - 17:57 | ( 0) Ты смотришь язык 1С:Исполнителя. |
mistergluck 3 - 25.02.21 - 17:57 | ( 1) зайдите по ссылке на итс |
mistergluck 4 - 25.02.21 - 18:00 | ( 2) Жаль.
Может кто знает тогда как поместить в Архив (в поток)
ЗаписьZip.Добавить(Файл.ОткрытьПотокЧтения(), Файл.Имя)
Двоичные данные из другого потока? |
polosov 5 - 25.02.21 - 18:01 | |
mistergluck 6 - 25.02.21 - 18:04 | ( 5) Хотел, что-то вроде такого:
Поток = новый ПотокВПамяти();
ЗаписьТекста = новый ЗаписьДанных(Поток,"CESU-8",,,Символы.ПС);
ЗаписьТекста.ЗаписатьСимволы("Пусть бегут неуклюже пешеходы по лужам А вода по асфальту рекой И не ясно прохожим в этот день непогожий Почему я веселый такой");
ЗаписьТекста.Закрыть();
ДвоичныеДанные = Поток.ЗакрытьИПолучитьДвоичныеДанные();
ПотокZIP = новый ПотокВПамяти();
ZipWriter
Сжатие = новый ЗаписьZipФайла(ПотокZIP,,,, УровеньСжатияZIP.Максимальный);
Сжатие.Добавить(Поток, РежимСохраненияПутейZIP.НеСохранятьПути);
Сжатие.Записать(); |
polosov 7 - 25.02.21 - 18:05 | ( 6) Да кто же тебя за руки то держит... |
mistergluck 8 - 25.02.21 - 18:07 | (7) ругается Сжатие.Добавить(Поток, РежимСохраненияПутейZIP.НеСохранятьПути);
Пробовал и так
Сжатие.Добавить(ДвоичныеДанные.ОткрытьПотокДляЧтения(), РежимСохраненияПутейZIP.НеСохранятьПути);
Некорректное имя файла: Поток
по причине:
Файл не обнаружен 'Поток'. 2(0x00000002): Не удается найти указанный файл. |
polosov 9 - 25.02.21 - 18:14 | ( 8) Изначально что хочешь сделать?
Не с http-сервисами ли работаешь? |
mistergluck 10 - 25.02.21 - 18:18 | |
polosov 11 - 25.02.21 - 18:21 | ( 10) А дальше что?
Хочешь в gzip запихать свою байтики? |
mistergluck 12 - 25.02.21 - 18:23 | ( 11) да, есть код, который это делает, но записывает во временный файл. Хотел исключить запись на диск |
polosov 13 - 25.02.21 - 18:25 | ( 12) Не получится. Метод Добавить() у ЗаписьZipФайла ожидает только имени файла. |
sitex 14 - 25.02.21 - 20:40 | ( 0) Если ты хочет упаковать в HTTP запрос со сжатием GZIP средствами 1С то гугли -> gzip deflate 1C. |