Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.04.02;
Скачать: CL | DM;

Вниз

Win Rar - команда для заархивирования   Найти похожие ветки 

 
Din   (2006-03-11 23:07) [0]

Хочу в своей программе, заархивировать в определенной папке файлы по нескольким маскам, насколько я понимаю, самый простой путь для этого запустить как внешнее приложение Винрар с определенными параметрами. Подскажите какой командой его надо запустить чтобы зархивировать в папке "путь к папке" файлы а.a1, а.a2, *.a3, *.a4 ?
И попутно еще вопрос : если я в коммандной строке запускаю винрар таким образом : С:/Program files/winrar/rar выдается сообщение путь С:/Program - не найден, каким образом в команде указать пробел?


 
wicked ©   (2006-03-11 23:18) [1]

пути с пробелами в командной строке задаются заключенными в кавычки.... например, "С:/Program files/winrar/rar" -a xxxxx
а запустить это дело можно с помощью ShellExecute или, уровнем ниже, CreateProcess....


 
palva ©   (2006-03-11 23:20) [2]

winrar a <имя архива> <путь>\a.a1 <путь>\a.a2 <путь>\*.a3 <путь>\*.a4

Если есть пробелы, которые не нужно интерпретировать как разделитель, то надо заключить все, что нужно рассматривать как единое целое в двойные кавычки. Это относится не только к пути Winrar, но и к параметрам - там тоже в путях могут быть пробелы.


 
Din   (2006-03-11 23:26) [3]

Спасибо!


 
Din   (2006-03-12 00:35) [4]

function ExecuteFile(const FileName, Params, DefaultDir: string;
 ShowCmd: Integer): THandle;
var
 zFileName, zParams, zDir: array[0..79] of Char;
begin
 Result := ShellExecute(Application.MainForm.Handle, nil,
   StrPCopy(zFileName, FileName), StrPCopy(zParams, Params),
   StrPCopy(zDir, DefaultDir), ShowCmd);
end;

если архиватор запускать с двумя параметрами например :
ExecuteFile("winrar.exe","a 1c.rar "d:\temp\sss\1SBUKR\1cv7.md" "d:\temp\sss\1SBUKR\*.dbf" ","D:\temp\",1); - то работает нормально, а если три и более то рар выдает ошибку

ExecuteFile("winrar.exe","a 1c.rar "d:\temp\sss\1SBUKR\1cv7.md" "d:\temp\sss\1SBUKR\1cv7.dd" "d:\temp\sss\1SBUKR\*.dbf" ","D:\temp\",1);

1c.rar cannot open d:\temp\sss\winrar.exe

и еще, как сделать чтобы внутри архива находились только файлы без папок (сейчас внутри архива \temp\sss\1SBUKR\ и файлы)


 
Германн ©   (2006-03-12 01:47) [5]


> ExecuteFile("winrar.exe","a 1c.rar "d:\temp\sss\1SBUKR\1cv7.
> md" "d:\temp\sss\1SBUKR\1cv7.dd" "d:\temp\sss\1SBUKR\*.dbf"
> ","D:\temp\",1);


То что этот вызов приведён тут как 2 строки - это так и в проекте?



Страницы: 1 вся ветка

Текущий архив: 2006.04.02;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.031 c
1-1141130678
Stas77
2006-02-28 15:44
2006.04.02
перехват событий от мышки


15-1141920731
Nic
2006-03-09 19:12
2006.04.02
Окно ввода логина и пароля


8-1130085255
fghfg
2005-10-23 20:34
2006.04.02
проблемы с добавлением звука в AVI


15-1142126083
phantasmagoria.ru
2006-03-12 04:14
2006.04.02
дизайн, программирование, www.phantasmagoria.ru


1-1141126052
oleg__
2006-02-28 14:27
2006.04.02
Загрузка процессора приложением