Delphi-Quellcode:
var
DFUnRar: TDFUnRar; //Variable, die die Instanz des Objektes enthalten soll
begin
DFUnRar := TDFUnrar.Create(Self); //Instanz des Objektes erzeugen
try //ab hier alle Fehler abfangen, damit das Objekt auf jeden Fall freigegeben wird
with DFUnRar do
begin
FileName := ExtractFilePath(ParamStr(0)) + 'Test.rar'; //Dateiname des Archives angeben
Directory := ExtractFilePath(ParamStr(0)) + 'Temp'; //Ausgabeverzeichnis (darf nicht auf \ enden!)
ForceDirectories(Directory); //sicherstellen, dass temporäres Ausgabeverzeichnis auch existiert
FileList.Clear; //Dateiliste der zu entpackenden Dateien leeren
//Ist diese Liste leer, werden alle Dateien ins Ausgabeverzeichnis entpackt. Sonst nur die in der Liste enthaltenen Dateien.
FileList.Append(Directory + '\readme.txt'); //Zu entpackende Dateien der Liste hinzufügen
//Befindet sich die Datei in einem Unterverzeichnis im Archiv, so muss auch dieses mit angegeben werden
Mode := DFRAR_EXTRACT; //Extract kann Dateien entpacken oder nur Inhaltsverzeichnisse erstellen (DFRAR_LIST)
OverrideEvent := OR_NEVER; //Ist die Datei im Ausgabeverzeichnis bereits vorhanden, so auf keine Fall überschreiben (Alternative OR_ALWAYS)
Extract; //Nun aber los ;-)
end;
finally
DFUnRar.Free; //und nicht vergessen: Objekt auf brav wieder freigeben
end;
Ich habe in dem Beispiel die Komponente nicht installiert und auf die Form "gezogen", sondern im Quelltext eine Instanz der Klasse erzeugt. Benötigt werden die Units DFUnRar.pas (muss in die uses-Klausel), die
Unit unitUnRar.pas und die
DLL unrar.dll, die alle im Programmverzeichnis liegen müssen.
Gruß
Malte