Текущий архив: 2007.07.08;
Скачать: CL | DM;
Вниз
Не получаетс разархивировать из Delphi Найти похожие ветки
← →
ambhtr (2007-05-08 16:17) [0]Не получаетс разархивировать из Delphi.
Делаю следующее:
var
strarj : String;
A: array[0..200] of Char;
begin
//nmFileFull - имя, с полным путем, архива.
strarj := "WinRAR e "+nmFileFull;
WinExec(StrPCopy(A,strarj), SW_SHOWNORMAL);
Компиллируется без ошибок. Выполняется тоже без ошибок.
Но! Ничего не делается. Архив остается не распакован.
Пробовал и так:
// WinExec("WinRAR e 35000025.rar 1\",1);
Не получается :о(
Если набираю в Far-e:
WinRAR e 35000025.rar 1\
Все работает, а из "Delphi" - нет.
Подскажите...
← →
Desdechado © (2007-05-08 16:29) [1]наверно, текущий путь не тот, не содержит архива
← →
ambhtr (2007-05-08 16:40) [2]Пробовал и так и этак. Если ошибка с путем в Far-e, то WinRar выдает сообщение об ошибке. Но в том-то и дело, что я уже записывал командную строку, которая в Far-e дает результат. Эта же строка из Delphi проскакивает насквозь. и без результата.
← →
TStas © (2007-05-09 00:32) [3]А сам файл не лежит ли в папке "Мои документы"? Тогда, поскольку есть пробел, путь к нему надо в кавычки взять
← →
DrPass © (2007-05-09 00:57) [4]...и какой результат возвращает сама WinExec?
← →
Германн © (2007-05-09 01:47) [5]
> DrPass © (09.05.07 00:57) [4]
>
> ...и какой результат возвращает сама WinExec?
>
Скорее всего автор и не знает, что WinExec - функция. :(
← →
lkan (2007-05-09 17:53) [6]наверное, в папку с прогой надо положить винрар.ехе
← →
ambhtr (2007-05-10 11:02) [7]Всем спасибо за участие. Заработало в следующем виде:
WinExec("C:\Program Files\WinRar\WinRar.exe e 35000025.rar 1\",1);
так же получилось и
WinExec("WinRar.exe e 35000025.rar 1\",1);
если переместить WinRar.exe в папку с прогой.
Так что, еще раз всем СПАСИБО!
← →
Desdechado © (2007-05-10 12:46) [8]А если у меня PrоgramFiles не на C, а в папку с прогой мне винрар 100 лет не нужен?
← →
Virgo_Style © (2007-05-10 12:47) [9]Desdechado © (10.05.07 12:46) [8]
папку с прогой мне винрар 100 лет не нужен
...и если в любую другую - тоже?
← →
PZ (2007-05-10 15:16) [10]А я делал BAt-файл:
erase *.bak
erase *.tmp
erase *.dcu
erase *.ddp
erase *.~*
erase ~*.*
erase *.err
copy c:\"Program Files"\WinRAR\Winrar.exe Winrar.exe
WinRAR.exe -r u -x*.tmp -x~*.* -x*.zip -xWinrar.exe -x*.arj -x*.rar -x*.dcu SokoBan.rar *.*
Pause
erase Winrar.exe
или другой вариант:procedure TForm1.FormActivate(Sender: TObject);
Var
S : String;
Params : String;
begin
S := ParamStr(1);
If S = "" then
S := "Arxiv.rar"
else
begin
S := ParamStr(1);
S := ChangeFileExt(S, ".rar");
end;
RemoveFiles; // здесь удаляю *.tmp *.dcu и т. д.
GetDir(0, cDir); // получить имя текущего каталога
if cDir[length(cDir)] <> "\" then cDir := cDir+"\";
Params := "-r u -x*.zip -x*.arj -x*.rar "+S+" *.*";
ShellExecute(Handle, Nil, "WinRar.exe", pChar(Params), pChar(cDir), SW_SHOWNORMAL);
end; { TForm1.FormActivate }
Страницы: 1 вся ветка
Текущий архив: 2007.07.08;
Скачать: CL | DM;
Память: 0.47 MB
Время: 0.041 c