Имя: Пароль:
1C
1С v8
Распаковка файлов
,
0 TwoWorld
 
21.09.11
16:51
Мне нужно распаковать файлы , почему не работает?
ТЧ - имя каталога...
      НайденныеФайлы = Новый Массив;
      НайденныеФайлы = НайтиФайлы("D:\Инстоляторы\" + ТЧ +"\", "*.exe");
      Для Каждого Фл Из НайденныеФайлы Цикл
          ЗапуститьПриложение(ФЛ,"D:\Инстоляторы\" + ТЧ,Истина);
      КонецЦикла;
1 TwoWorld
 
21.09.11
17:00
А файлы .exe можно только через  ЗапуститьПриложение() открыть и распаковать?
2 hhhh
 
21.09.11
17:01
(21) ну наверно не то суёшь. В ЗапуститьПриложение должна быть строка, а ты подсовываешь "Фл", а это точно не строка.
3 Amra
 
21.09.11
17:04
(2) +1000
4 TwoWorld
 
21.09.11
17:09
да это я решил, только вот всегда выдается командная строка  ии нужно постояннонажимать Y - т.е да...
5 TwoWorld
 
21.09.11
17:17
ФайлыПереноса = Новый Массив;
       ФайлыПереноса = НайтиФайлы("D:\Отчетность\VREM\");
       
       ИмяАрхивногоФайла ="11.rar";
       ЗаписьZIP = Новый ЗаписьZipФайла(ИмяАрхивногоФайла);
       Для Каждого Фл1 Из ФайлыПереноса Цикл
           Если Фл1.Расширение = ".EXE" Тогда
               продолжить;
           Иначе
                  ЗаписьZIP.Добавить("D:\Инстолятор\VREM\" + Фл1.Имя, РежимСохраненияПутейZIP.НеСохранятьПути);
                ЗаписьZIP.Записать();
           КонецЕсли;
      КонецЦикла;

почему не записывает в архив?
6 TwoWorld
 
21.09.11
17:17
ФайлыПереноса = НайтиФайлы("D:\Инстолятор\VREM\");
7 GenV
 
21.09.11
17:19
Звездочки во второй параметр добавь. Поиск файлов в каталоге, если задана маска иначе всего будет искать исходный каталог.
8 TwoWorld
 
21.09.11
17:36
Не пойму ни как у меня 20 файлов а только 1 записывает:
       ФайлыПереноса = Новый Массив;
       ФайлыПереноса = НайтиФайлы("D:\Инстолятор\VREM\","*.*");
       
       ИмяАрхивногоФайла ="11.rar";
       ЗаписьZIP = Новый ЗаписьZipФайла(ИмяАрхивногоФайла);
       фЛПЕРВЫЙ = 0;
       Для Каждого Фл1 Из ФайлыПереноса Цикл
           Если Фл1.Расширение = ".EXE" Тогда
               продолжить;
           Иначе
               еСЛИ фЛПЕРВЫЙ =1 тОГДА
               ЗаписьZIP.Открыть(ИмяАрхивногоФайла);
               КонецЕсли;
                  ЗаписьZIP.Добавить("D:\Инстолятор\VREM\" + Фл1.Имя, РежимСохраненияПутейZIP.НеСохранятьПути);
                ЗаписьZIP.Записать();
                фЛПЕРВЫЙ = 1;
           КонецЕсли;
      КонецЦикла;

               КонецЕсли;
9 TwoWorld
 
22.09.11
11:30
Подскажите, можно ли программно заархивировать папку?
10 Aprobator
 
22.09.11
11:38
(9) можно. СП не прочитать что ли? Там не только имя файла подставляется, но и маска.
11 TwoWorld
 
22.09.11
11:42
Вот пишу:
ИмяВременногоКаталога = "D:\Инстоляторы\АА"; АА - это папка
ИмяАрхивногоФайла ="D:\Rp" + ЭлементыФормы.Год1.Заголовок + "_" + ТЧ + ".rar";
ЗаписьZIP = Новый ЗаписьZipФайла(ИмяАрхивногоФайла);
ЗаписьZIP.Добавить(ИмяВременногоКаталога, РежимСохраненияПутейZIP.НеСохранятьПути,РежимОбработкиПодкаталоговZIP.ОбрабатыватьРекурсивно);
ЗаписьZIP.Записать();
Не работает!
12 Aprobator
 
22.09.11
11:56
интересная у тебя маска однако.
ИмяВременногоКаталога ="D:\Инстоляторы\АА\*.*".
13 Aprobator
 
22.09.11
11:58
и это еще: РежимСохраненияПутейZIP.СохранятьОтносительныеПути.
14 TwoWorld
 
22.09.11
12:04
Не работает так:
ЗаписьZIP.Добавить("D:\Инстоляторы\" + "Rp"+Число(Лев(ЭлементыФормы.Год1.Заголовок,2)) + "q" +Число(Сред(ЭлементыФормы.Год1.Заголовок,4,1))+"\*.*", РежимСохраненияПутейZIP.СохранятьОтносительныеПути,РежимОбработкиПодкаталоговZIP.ОбрабатыватьРекурсивно);
15 Aprobator
 
22.09.11
12:07
(14) пробелы в пути не попадаются?
16 Aprobator
 
22.09.11
12:07
и как не работает то? Не архивирует вообще, что ли?
17 TwoWorld
 
22.09.11
12:08
архив создает, а папку не архивирует!
18 Aprobator
 
22.09.11
12:10
(17) пробелы есть в наименовании папки которая архивируется?
19 TwoWorld
 
22.09.11
12:13
Вот что попадает под путь:
"D:\Инстоляторы\Rp11q3\*.*"
20 Aprobator
 
22.09.11
12:19
хм - вроде все норм. Т.е. архив создается вообще пустой? Или файлы копируются, но без папки?
21 TwoWorld
 
22.09.11
12:20
(20) все взлетело!
Надо так:
ЗаписьZIP.Добавить("D:\Инстоляторы\"+"*.*", РежимСохраненияПутейZIP.СохранятьОтносительныеПути,РежимОбработкиПодкаталоговZIP.ОбрабатыватьРекурсивно);
22 Aprobator
 
22.09.11
12:29
(21) папкой выше брать? А если нужна конкретная папка в подкаталоге? Лана - счас перекушу и сам поиграюсь с этим.
23 Aprobator
 
22.09.11
13:13
вот так все работает:
КаталогДляАрхивации - путь к архивируемому каталлогу без "\" (тупо значение каталога с ДиалогВыборФайла).

&НаКлиенте
Процедура АрхивироватьКаталог(Команда)
   
   Если НЕ ПроверитьЗаполнение() Тогда
       Возврат
   КонецЕсли;
   
   АрхивZIP = Новый ЗаписьZipФайла(ИмяФайлаАрхива);
   АрхивZIP.Добавить(КаталогДляАрхивации + "\", РежимСохраненияПутейZIP.СохранятьОтносительныеПути, РежимОбработкиПодкаталоговZIP.ОбрабатыватьРекурсивно);
   АрхивZIP.Записать();
КонецПроцедуры

24 Aprobator
 
22.09.11
13:18
+(23) имеется ввиду без "\" в конце.
Оптимист верит, что мы живем в лучшем из миров. Пессимист боится, что так оно и есть.