Einzelnen Beitrag anzeigen

TUX_der_Pinguin

Registriert seit: 1. Jun 2005
Ort: Anholt (NRW)
608 Beiträge
 
Delphi 11 Alexandria
 
#1

Abbrevia LastModTime bei letzter Datei fehlerhaft

  Alt 12. Aug 2015, 08:54
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?
  Mit Zitat antworten Zitat