Thema: Delphi sevenzip Api

Einzelnen Beitrag anzeigen

Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#6

AW: sevenzip Api

  Alt 6. Nov 2010, 14:19
Müsste eigentlich schon das richtige sein.

Nun ist die frage wie mache ich das?!

Denn " procedure ExtractItem(const item: Cardinal; Stream: TStream; test: longbool); stdcall;" erfordert ja einen Stream.

Mein Ansatz
mal erweitert
Delphi-Quellcode:
var
i : Integer;
fs : TFileStream;
begin
with CreateInArchive(CLSID_CFormatZip) do
begin
  openfile(openpfad);
  for i := 0 to dateilist.Items.Count - 1 do begin
    if dateilist.Items[i].Selected then
    begin
      // !! ACHTUNG !!
      // Den Dateinamen + Verzeichnis aus dem Archiv auslesen
      // Im Archiv sollten sich die relativen Pfade befinden
      // oder sogar in dateilist.items ???
      fs := TFileStream.Create( 'C:\irgendwo\irgendwas.dat', fmOpenCreate );
      try
        extractitem(i, fs ,true);
      finally
        fs.Free;
      end;
    end;
  end;
EDIT: steht inopenpfad nicht der Dateiname der zip-Datei?
Warum willst Du also in die Zip-Datei entpacken?
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)

Geändert von Sir Rufo ( 6. Nov 2010 um 14:25 Uhr)
  Mit Zitat antworten Zitat