Danke @Bommel.. Das hört sich eigentlich gut an, habe auch mal etwas mit deinem Code experimentiert, nur komme ich damit nicht so ganz klar. Hast Du davon eine Demo/ein Beispiel?
Sorry, dass ich erst so spät antworte. So sieht das zum Beispiel aus, wenn die im von mir verlinkten Thread vorgestellte ShellZip-
Unit mit der dort umgesetzten Klasse TShellZip benutzt wird (mit den von mir dort geposteten Änderungen):
Delphi-Quellcode:
var [...]
shellZip: TShellZip;
begin
[...]
shellZip:=TShellZip.Create;
shellZip.Zipfile:=aZipFilename;
// erstmal die Konfig sichern
if fileExists(aConfigFilename)
then begin
shellZip.Filter:=ExtractFileName(aConfigFilename);
try
shellZip.ZipFolder(ExtractFileDir(aConfigFilename),10);
except
on e:
exception do begin
Result:=e.
Message;
success:=false;
end;
end;
end;
[...]
In dem Beispiel wird jetzt eine einzige Datei in die Zip-Datei geschrieben (nämlich eine Konfig-Datei, tut aber eigentlich nichts zur Sache). Man gibt im Befehl "ZipFolder" also an, dass man jetzt ein Verzeichnis komprimieren will. Will man aber in Wahrheit gar nicht das ganze Verzeichnis komprimieren, sondern, wie hier im Beispiel, doch nur eine einzelne Datei, so kann man diesen Dateinamen eben vorher im "Filter" setzen. Darüber kann man dann natürlich auch mit Wildcards arbeiten.
Ich hoffe, das hilft dir erstmal weiter. Sollten noch Rückfragen sein, bitte nicht wundern, falls ich erstmal nicht antworte, da ich in den nächsten Tagen wahrscheinlich nicht am Rechner bin.
Bis denn
Bommel