Имя: Пароль:
1C
 
Запись нескольких файлов в ZIP архив.
0 DAVI
 
11.04.17
13:33
Добрый день. Несколько экселевских файлов лежат на диске. Как их все запаковать в один ZIP архив. Делаю так
ЗаписьZIP = Новый ЗаписьZipФайла(ДатаФайла);
ЗаписьZIP.Добавить(Файл);
ЗаписьZIP.Записать();
и он конечно же записывает в архив только последний файл.
Как делать правильно?
1 lodger
 
11.04.17
16:35
через штатную запись в ЗаписьZIP.Добавить(Файл); надо писать маску, по которой платформа наберет все понравившиеся ей файлы. т.е. невозможно их поименно перечислить.
2 ManoloMage
 
11.04.17
16:40
Проще положить в одну папку, а потом пременить маску "*.*" и не т проблем. Кстати интерактивно так обычно и делается.
3 НЕА123
 
11.04.17
16:47
(0)
>и он конечно же записывает в архив только последний файл.

он же и первый, и единственный. не?
4 lodger
 
11.04.17
17:07
(2) ну, некоторые добрые люди работают в темпах и не создают лишних папок. тогда придется уникальный шаблон именования для файлов колхозить и по нему маску отбора делать.
(3) там имя конечного файла или маска для отбора.
5 ManoloMage
 
12.04.17
10:34
(4) Что мешает в temp создать папку?
6 DAVI
 
12.04.17
16:44
(5) а можно пример пожалуйста
7 kn
 
12.04.17
18:18
КаталогВременныхФайлов = КаталогВременныхФайлов();
КаталогКартинок = КаталогВременныхФайлов + "\Картинки\";
      
КаталогНаДиске = Новый Файл(КаталогКартинок);
Если Не КаталогНаДиске.Существует() Тогда
   СоздатьКаталог(КаталогНаДиске);
КонецЕсли;

//туда в КаталогКартинок пишем файлы

......

//архивируем КаталогКартинок
Архиватор = Новый ЗаписьZipФайла(КаталогВременныхФайлов + "\мойфайл.zip");
Архиватор.Добавить(КаталогаКартинок, РежимСохраненияПутейZIP.СохранятьОтносительныеПути);
Архиватор.Записать();
8 Chieftain
 
12.04.17
23:20
(0) А что мешает несколько раз вызвать "Добавить" не пересоздавая объект "ЗаписьZIP"?
9 Chieftain
 
12.04.17
23:23
+(8) типа
    ЗаписьZIP = Новый ЗаписьZipФайла("d:\qwer.zip");
    ЗаписьZIP.Добавить("d:\1.txt");
    ЗаписьZIP.Добавить("d:\2.txt");
    ЗаписьZIP.Добавить("d:\3.txt");
    ЗаписьZIP.Записать();
Есть два вида языков, одни постоянно ругают, а вторыми никто не пользуется.