Hallo DPler,
ich versuche mich gerade an der Abbrevia Komponente und eigentlich klappt schon alles recht gut mir ist nur jetzt etwas sehr merkwürdiges aufgefallen.
Ich habe eine Liste mit Verschiedenen Dateien, an verschiedenen Orten, und diese werden erst in ein TMemoryStream geladen um anschließend den Stream
mit AddFromStream dem Archiv hinzuzufügen. Dies mache ich so damit ich die gewünschte Verzeichnisstruktur innerhalb des Archivs erhalte.
Delphi-Quellcode:
var
dtTmp: TDateTime;
begin
AbZipKit.OpenArchive('test.zip');
MStream := TMemoryStream.Create;
try
for Index := 0 to High(FileList) do
begin
//Datei in Stream laden
MStream.LoadFromFile(FileList[Index].FilePath);
//Stream in Archiv hinzufügen
AbZipKit.AddFromStream(FileList[Index].RelativePath, MStream);
//Dateidatum ermitteln
FileAge(FileList[Index].FilePath, dtTmp);
//Dateidatum setzen
AbZipKit.Items[AbZipKit.Count-1].LastModTimeAsDateTime := dtTmp;
//Hier ist (noch) alles korrekt
ShowMessage(DateTimeToStr(AbZipKit.Items[AbZipKit.Count-1].LastModTimeAsDateTime));
end;
finally
MStream.Free;
try;
AbZipKit.CloseArchive;
AbZipKit.OpenArchive('test.zip');
for Index := 0 to AbZipKit.Items-1 do
begin
//Alles korrekt bis auf die letzte Datei
ShowMessage(DateTimeToStr(AbZipKit.Items[Index].LastModTimeAsDateTime));
end;
AbZipKit.CloseArchive;
Die Erstellung des Archivs klappt, die Dateien befinden sich korrekt darin. Aber immer bei der zuletzt hinzugefügten Datei wird das Datum nicht korrekt gesetzt. Es scheint als würde beim abschließenden speichern des Archivs das Datum der letzten Datei verändert. Das Datum wird dann immer auf den Zeitpunkt der Erstellung gesetzt.
Hat jemand dafür eine Erklärung bzw. eine Idee wie ich das umgehen kann?