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