Hi
DP,
Ich benutzte DFUnRar um Dateien zu entpacken, aber irgendwie kriegt er es nicht gebacken ^^.
Das ist der passende Code dazu:
Delphi-Quellcode:
duUnrar := TDFUnRar.Create(self);
try
duUnrar.OnProgress := UnrarProgress;
duUnrar.FileName := ParamStr(1);
outputPath := ExtractFilePath(ParamStr(3));
duUnrar.Directory := Copy(outputPath, 1, Length(outputPath) - 1);
duUnrar.Extract;
finally
FreeAndNil(duUnrar);
end;
Ich habe es probiert mit einer Rar-Datei mit rar-Endung (normalerweise hat die Datei keine Endung).
Auch mit "\" und ohne "\" als abschließendes Zeichen bei Directory.
Due ProgressMethode wird aufgerufen, aber irgendwie auch nicht korrekt:
Delphi-Quellcode:
procedure TForm1.UnrarProgress(Sender: TObject; FilesProcessed, FileCount,
SizeProcessed, SizeCount: Cardinal);
begin
if FileCount > 0 then
pbStatus.Position := Round(FilesProcessed / FileCount * 100)
else
pbStatus.Position := FilesProcessed;
Application.ProcessMessages;
end;
"FileCount" ist nämlich 0 (obwohl FilesProcessed höher liegt!)
Und das Archiv ist frisch mit WinRAR selbst gepackt !
Übrigens: FilesProcessed liegt zu hoch ^^ Und zwar ist der Maximalwert 57, und es gibt nur 45 Dateien und 11 Ordner (Also 56 insgesamt).