Имя: Пароль:
1C
1С v8
ошибка при работе с 7z
,
0 blesha
 
07.04.21
12:38
Коллеги, добрый день.
Есть проблема при попытке извлечь файлы из архива с помощью 7z. пишет:
если выполнить с командной строке:
7z e arch1.7z
7z.exe e arch1.7z
то все ок

Но если выполнить с помощью:
ЗапуститьПриложение("7z e arch1.7z", Каталог, Истина, КодВозврата)
ЗапуститьПриложение("7z.exe e arch1.7z", Каталог, Истина, КодВозврата)

то возникает ошибка:
Не удалось запустить "7z e arch1.7z", по причине: 2(0x00000002): Не удается найти указанный файл.
Не удалось запустить "7z.exe e arch1.7z -spf", по причине: 2(0x00000002): Не удается найти указанный файл.

как можно победить ошибку?
1 shuhard
 
07.04.21
12:42
(0) пути к файлам относительно чего указаны ?
код на клиенте или сервере ?
2 blesha
 
07.04.21
12:44
(1) относительно каталога "Каталог", в котором 7z.exe сидит
база файловая пока, но код в серверной процедуре
3 blesha
 
07.04.21
12:45
архивы в том же каталоге
4 Lama12
 
07.04.21
12:54
Вероятно в переменной Каталог "неправильный" каталог.
5 blesha
 
07.04.21
12:58
(4) правильный)
6 arsik
 
гуру
07.04.21
13:00
(0) Ну так полный путь к 7zip пиши.
7 Garykom
 
гуру
07.04.21
13:00
(0) полный путь указывай и не ипи мозги
причем пути с пробелами и кириллицей надо брать в ""

Каталог = "c:\блабла\бла бла\";
ЗапуститьПриложение(""""+Каталог+"7z.exe"" e arch1.7z", Каталог, Истина, КодВозврата)
8 acht
 
07.04.21
13:00
(0) > как можно победить ошибку?
Указать полный путь к исполняемому файлу. Вах К.О.
9 acht
 
07.04.21
13:00
Ккккомбо =)
10 blesha
 
07.04.21
13:01
короче, удалось так победить:
....
СтрокаКомандыШаблон = """C:\Program Files\7-Zip\7z.exe"" e %1";
или
СтрокаКомандыШаблон = """" + Каталог + "7z.exe"" e %1"
....
СтрокаКоманды = СтрШаблон(СтрокаКомандыШаблон, ФайлАрхива.Имя);
ЗапуститьПриложение(СтрокаКоманды, Каталог, Истина, КодВозврата);

почему-то для самого 7z путь
11 blesha
 
07.04.21
13:02
ооо, пока писал что разобрался, уже ответы прилетели)
Глупец, лишенный способности посмеяться над собой вместе с другими, не сможет долго выносить программирование. Фредерик Брукс-младший