Wenn du das Datum nur vergleichen willst, dann könntest mußt du die Zeitzone nicht umrechnen.
Delphi-Quellcode:
function FileCreated(fn: TFileName): TDateTime;
var
sr: TSearchRec;
st: TSystemTime;
begin
if FindFirst(fn, faAnyFile, sr) = 0 then
begin
>>>>
FileTimeToSystemTime(sr.FindData.ftCreationTime, st);
Result := SystemTimeToDateTime(st);
<<<<
SysUtils.FindClose(sr);
end else Result := 0;
end;
PS: Bei FAT wird die Zeitzone nicht gespeichert, aber via NTFS sollte Zeitzone eh schon von Windows im FindFirst/FindNext eingerechnet sein.
PSS: neben .ftCreationTime gibt es auch noch 2 andere Zeitangaben.
(z.B. eine für die letzte Änderung
)
Nja, hier übergibst du
einen Dateinamen und ließt nur dessen Datum aus.
Wenn du via FindFirst/FindNext das
ganze Verzeichnis ausließt, dann kannst du in dieser Schleife genau das Selbe mit diesen Datumswerten machen.
SirThornberry:
Ja OK, das kann man, aber dafür muß man die Dateiauswertung doppelt vornehmen (einmal für die Erste und dann nochmal für alle restlichen Dateien).
Da sind die 2 Zeilen für das Initialisieren meißt schneller/kleiner/einfacher.
PS: Wenn mal keine Dateien vorhanden sind, dann hat hat man so auch gleich ein paar "Default"-Wert in diesen Variablen. (ich bin Faul und nehm da lieber die kleine Initialisierung)