Klar.
Delphi-Quellcode:
using System.IoUtils;
var
absolutePath: String;
archiveFileName: String;
begin
for absolutePath in TDirectory.GetFiles(..) do begin
archiveFileName := [...];
myZipFile.Add(absolutePath, archiveFileName);
end;
myZipFile.Close();
end;
Wobei
archiveFileName
den "Pfad" in der ZIP-Datei angibt. Wenn du bspw. folgende Struktur auf der Platte hast
x:\Dir1\someFile.txt
x:\Dir1\Dir2\someOtherFile.txt
Und du das Verzeichnis x:\Dir1 rekursiv speichern willst dann sind das im Endeffekt die zwei Aufrufe
Delphi-Quellcode:
myZipFile.Add('x:\Dir1\someFile.txt', 'someFile.txt');
myZipFile.Add('x:\Dir1\Dir2\someFile.txt', '.\Dir2\someFile.txt');