|
ошибка при работе с 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
|
ооо, пока писал что разобрался, уже ответы прилетели)
|
|
Глупец, лишенный способности посмеяться над собой вместе с другими, не сможет долго выносить программирование. Фредерик Брукс-младший