Форум: "Начинающим";
Текущий архив: 2009.04.26;
Скачать: [xml.tar.bz2];
ВнизТеряется путь от исполняемой папки Найти похожие ветки
← →
AIK © (2009-03-15 15:50) [0]Привет всем.
Может кто сталкивался хотя бы с подобной проблемой, мне нужно просто выгрузить всё из архива (с помощью WinRAR) в папку Temp делаю следуюшее:procedure TForm1.Button1Click(Sender: TObject);
Var
parm, s: String;
begin
parm:="x 123.zip Temp\";
ShellExecute(1, nil, "WinRAR", PansiChar(parm), nil, SW_NORMAL);
end;
Всё прекрасно работает но у меня на форме есть OpenDialog после того как воспользуюсь им путь к исходной папке теряется и выше упомянутый код не работает, сделал следуюшее:S:= ExtractFilePath(Application.ExeName)+"Temp\";
parm:="x "+ ExtractFilePath(Application.ExeName)+"123.zip "+ S;
ShellExecute(1, nil, "WinRAR", PansiChar(parm), nil, SW_NORMAL);
Но это по каким-то странным обстоятельством даже немного в глубоком дереве папок WinRar не видит файл только в первых каталогах диска (Например: C:\123.zip). Как мне быть с этой ситуацией?
← →
AIK © (2009-03-15 15:53) [1]
> ShellExecute(1, nil, "WinRAR", PansiChar(parm), nil, SW_NORMAL);ShellExecute(Handle, nil, "WinRAR", PansiChar(parm), nil, SW_NORMAL);
Эт я вспешке :)
← →
Плохиш © (2009-03-15 20:19) [2]Используй в программе полные пути.
← →
AIK © (2009-03-16 07:41) [3]
> Используй в программе полные пути.S:= ExtractFilePath(Application.ExeName)+"Temp\";
parm:="x "+ ExtractFilePath(Application.ExeName)+"123.zip "+ S;
Так ведь объяснил же что WinRar не распознает длинные передаваемые параметры и поэтаму не всегда работает
← →
И. Павел (2009-03-16 08:04) [4]Заключите имя параметра в кавычки (если путь содержит пробелы, они будут восприниматься как разделители параметров)
← →
И. Павел (2009-03-16 08:06) [5]ShellExecute(1, nil, "WinRAR", PansiChar("""+parm+"""), nil, SW_NORMAL);
← →
AIK © (2009-03-16 08:40) [6]
> (если путь содержит пробелы, они будут восприниматься как
> разделители параметров)
Ах да я даже неподумал обэтом, спасибо Павел
Так выглядит рабочий вариант:S:= """+ExtractFilePath(Application.ExeName)+"Temp\"";
parm:="x ""+ ExtractFilePath(Application.ExeName)+"123.zip" "+ S;
ShellExecute(Handle, nil, "WinRAR", PansiChar(parm), nil, SW_NORMAL);
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2009.04.26;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.006 c