Für den, den es interssiert, hier nochmal der Code mit der Übergabe der entpackten Dateiliste incl. Verzeichnisangabe:
Code:
const
SHCONTCH_NOPROGRESSBOX = 4;
SHCONTCH_AUTORENAME = 8;
SHCONTCH_RESPONDYESTOALL = 16;
SHCONTF_INCLUDEHIDDEN = 128;
SHCONTF_FOLDERS = 32;
SHCONTF_NONFOLDERS = 64;
function ShellUnzip(zipfile, targetfolder: string; FileList : TStringList; Const filter: string = ''): boolean;
var
shellobj: olevariant;
srcfldr, destfldr: olevariant;
shellfldritems: olevariant;
FilterV,
ZipFileV, TargetFldrV: OleVariant;
I:Integer;
begin
shellobj := CreateOleObject('Shell.Application');
/// 25.03.2014 17:07 -> Keine direkte Zuweisung von ZipFile an shellobj.NameSpace(...
ZipFileV := ZipFile;
srcfldr := shellobj.NameSpace(zipfileV);
/// 25.03.2014 17:07 -> dito
ForceDirectories(PChar(targetfolder));
TargetFldrV := targetfolder;
destfldr := shellobj.NameSpace(TargetFldrV);
shellfldritems := srcfldr.Items;
/// 25.03.2014 17:07 -> dito
FilterV := Filter;
if (filter <> '') then
shellfldritems.Filter(SHCONTF_INCLUDEHIDDEN or SHCONTF_NONFOLDERS,filterV);
destfldr.CopyHere(shellfldritems,SHCONTCH_NOPROGRESSBOX or SHCONTCH_RESPONDYESTOALL);
if Assigned(FileList) then
Begin
FileList.Clear;
for I := 0 to shellfldritems.Count -1 do
FileList.Add(shellfldritems.item(I).path);
end;
end;