Hey Leute,
wie ihr vielleicht schon mit bekommen habt entwickel ich garde einen Entpacker, der ist schon fast fertig und ich war am testen ob der auch alle Archive entpackt. Dann ist mir aufgefallen das der keine ".iso" Archive entpackt.
In der sevenzip.pas steht das
Delphi-Quellcode:
CLSID_CFormatUdf : TGUID = '{23170F69-40C1-278A-1000-000110E00000}'; // iso
CLSID_CFormatIso : TGUID = '{23170F69-40C1-278A-1000-000110E70000}'; // iso
Es sind 2 unterschiedliche. Aber beide gehen nicht . Er entpackt sie nicht nur, er "öffnet" sie gar nicht erst. Die Dateien können nicht ausgelesen werden, als Fehlermeldung kommt "Unzulässige Funktion"
Bei allen andern Archiv klappt das wie : .rar, .zip, .cab, .lzma, .xpi usw
Ich mache es Folgendermaßen:
Delphi-Quellcode:
if openend = '.iso' then
begin
with CreateInArchive(CLSID_CFormatiso) do
begin
Hinzufgen1.Enabled := false;
sBitBtn3.Enabled := false;
sBitBtn5.Enabled := false;
Eigenschaften1.Enabled := false;
openfile(openpfad);
i := numberofitems;
for i := 0 to numberofitems - 1 do
begin
inpfad := itempath[i];
zpfad := StringReplace(inpfad, '/', '\', [rfReplaceAll]);
datei := Extractfilename(zpfad);
Item := Dateilist.Items.add;
Item.Caption := datei;
Item.SubItems.add(Extractfilename(openpfad) + '/' + inpfad);
Item.SubItems.add(inttostr(itemsize[i]) + ' B');
lblag.Caption := inttostr(GetFileSizeA(openpfad) div 1024) + ' KB';
date1 := CurrentFileTime;
Item.SubItems.add(datetostr(FileTimeToDateTime(date1)))
end;
end;
lblanzahl.Caption := inttostr(i);
end;