Ich bastle gerade mal wieder an meinem Copy Commander herum.
Es geht darum eine Synchronisation von Verzeichnissen zu realisieren.
Im Prinzip habe ich auch schon alles fertig. Nur leider jedoch bekomme ich das Attribut "Letzte Dateiänderung" nicht so wie ich mir das vorstelle.
Was ich mache :
Ich suche Alle Dateien in einem Ordner und merke sie mir in einer Liste, Ebenfalls will ich mir den Zeitpunkt merken, zu dem die Datei zuletzt geändert wurde.
Später vergleiche ich diese beiden Zeitpunkte, sind sie ungleich, so ist eine Datei neuer, und diese wird dann mit der entsprechenden "Kopierrichtung" in eine Liste eingetragen.
Code: Alles auswählen
If FindFirst(Path1 + '*', faAnyFile, SR1) = 0 Then Begin
Repeat
If (SR1.Attr And FaDirectory = 0) Then Begin
If (sr1.Name <> '.') And (sr1.Name <> '..') Then Begin
setlength(info1, high(info1) + 2);
info1[high(info1)].lastchanged := sr1.Time; // <-- Das scheint nicht die Richtige Zeit zu sein.
info1[high(info1)].name := path1 + sr1.Name;
End;
End
Until FindNext(SR1) <> 0;
FindClose(SR1);
End;
GetFileDate habe ich auch schon Probiert, doch das liefert mir immer die Selben Werte wie sr1.time.
in meiner Kopier Routine achte ich darauf dass ich das Dateidatum auch mit kopiere :
Code: Alles auswählen
..
FileSetDate(fDst, FileGetDate(fSrc));
FileClose(fDst);
FileSetAttr(dest, FileGetAttr(source));
FileClose(fSrc);
..
Code: Alles auswählen
Function FileSetDate (Handle,Age : Longint) : Longint;
begin
// Impossible under Linux from FileHandle !!
FileSetDate:=-1;
end;
Kann ich das FileSetDate irgendwie doch noch realisieren ?