Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi DFUnRar entpackt nicht "sichtbar" (https://www.delphipraxis.net/99666-dfunrar-entpackt-nicht-sichtbar.html)

xZise 15. Sep 2007 18:19


DFUnRar entpackt nicht "sichtbar"
 
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).

ringli 15. Sep 2007 18:24

Re: DFUnRar entpackt nicht "sichtbar"
 
Ich kann dir zwar jetzt nicht direkt helfen, aber bist du sicher das bei

Delphi-Quellcode:
outputPath := ExtractFilePath(ParamStr(3));
der ParamStr(3) richtig ist? Gibt es da noch einen weiteren Parameter oder müsste es nicht ParamStr(2) heissen?

xZise 15. Sep 2007 18:39

Re: DFUnRar entpackt nicht "sichtbar"
 
Hi,
Leider Nein :) Pfade sind richtig (debuggt)
Das Programm hat 4 Parameter ^^ (also insgesamt 5) ;)

MfG
xZise

xZise 18. Sep 2007 13:47

Re: DFUnRar entpackt nicht "sichtbar"
 
Woran könnte es liegen, dass er nicht entpackt :)
Bitte helft mir xD
Liegt es vielleicht an der .dll? Muss ich da was beachten? Oder gibt es seit kurzem eine neu Unit die das behebt?

Garfield 18. Sep 2007 17:25

Re: DFUnRar entpackt nicht "sichtbar"
 
Vielleicht hilft Dir dieses Demoprogramm mit Source: http://www.freeware-archiv.de/DFUnRar-Packen.htm

xZise 18. Sep 2007 18:05

Re: DFUnRar entpackt nicht "sichtbar"
 
Hi,
Oh ja :oops:
Danke ^^
Mit
Delphi-Quellcode:
.Mode := DFRAR_EXTRACT;
funktioniert das wunderbar.
Und wenn ich vorher folgendes Kontrukt ausführe, zeigt er einen korrekten "FileCount"-Wert in der Progressroutine an:
Delphi-Quellcode:
// Rar-Datei einlesen
duUnrar.CanProgress := false;
duUnrar.Mode := DFRAR_LIST;
duUnrar.Extract;
duUnrar.CanProgress := true;
Und es wurde eine Datei zu viel "extrahiert", weil ich vergessen hatte ( :oops: ), dass die Dateien noch in einen Ordner gespeichert waren ^^

MfG
xZise

Garfield 18. Sep 2007 19:47

Re: DFUnRar entpackt nicht "sichtbar"
 
Zitat:

Zitat von xZise
funktioniert das wunderbar.

:thumb:

Schön. Ich bin auch dabei, mich mit dem Thema zu befassen.


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:52 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz