![]() |
|
|
|
|
#1
|
|||
|
|||
|
Помогите пожалуста разобраться с архивированием.
Вообщем я создаю bat файл с кодом и запускаю его. Вопрос в следующем. Допустим если указать путь к папке, в которой есть какие-нибуль файлы, то он создает архив. Вроде все хорошо. Но если допустим указать путь к папке в которой помимо файлов есть еще папки, то он почему-то создаст архив с фалами, но без папок.. а если указать путь к пустой папке, то он вообще ничего не создаст... Почему так происходит, может я команды неправильно использую, или еще каких-то команд не хватает.. Вот собственно текст программы: Код:
function StrToOem(const AnsiStr: string): string;
begin
SetLength(Result, Length(AnsiStr));
if Length(Result) <>0 then
CharToOem(PChar(AnsiStr), PChar(Result));
end;
procedure TForm1.Button1Click(Sender: TObject);
var
t:TextFile;
Begin
// Открытие текстового файла для записи
AssignFile(t,'c:\1234.bat');
ReWrite(t);
// Запись в файл
// Writeln(t,'cd '+'"'+StrToOem(Edit1.Text)+'"');
Writeln(t,'arj a '+' '+ '"' + StrToOem(Edit2.Text) + '"' +' '+ '"' + StrToOem(Edit1.Text) + '"');
//Writeln(t,'Pause'+' ');
Writeln(t,'del "c:\1234.bat"'+' ');
Writeln(t,'cls'+' ');
// Закрытие файла
CloseFile(t);
// Запуск файла
WinExec('C:\1234.bat', 1);
end;Последний раз редактировалось Admin, 29.04.2009 в 22:06. |
|
#2
|
||||
|
||||
|
Во первых, зачем вы делаете свой архив столь длинным путем, запускайте сразу из своей программы ваш архиватор. Примеров как это сделать на форуме масса.
Во вторых, запустите в командной строке arj и посмотрите какие параметры ему надо передавать что-бы он просматривал вложенные каталоги. Смотрите на ключик "r". |
|
#3
|
|||
|
|||
|
Цитата:
|