Home » Tipps & Tricks » Dateien/Verzeichnisse » Dateieigenschaften » Erstellungsdatum von Dateien ermitteln

Erstellungsdatum von Dateien ermitteln

Dieser Artikel zeigt, wie Sie von Dateien das Datum ihrer Erstellung ermitteln können. Folgende Funktion gibt das Erstellungsdatum einer Datei zurück. Konnte es nicht ermittelt werden, ist der Rückgabewert 0. Sie erwartet den kompletten Dateinamen (inkl. Pfad!) und für die Ausgabe eine Variable vom Typ TDateTime als Parameter:

function GetCreationTimeOfFile(const AFileName: string): TDateTime;
var
  SR: TSearchRec;
  SystemTime: TSystemTime;
  NewCreationTime: TFileTime;
begin
  Result:=0;
  if FindFirst(AFileName, faAnyFile, SR)=0 then
  try
   if (Windows.FileTimeToLocalFiletime(SR.FindData.ftCreationTime, NewCreationTime) and
           Windows.FileTimeToSystemTime(NewCreationTime, SystemTime)) then
    Result:=Encodedate(SystemTime.wYear,
                       SystemTime.wMonth,
                        SystemTime.wDay) +
            Encodetime(SystemTime.wHour,
                       SystemTime.wMinute,
                       SystemTime.wSecond,
                       SystemTime.wMilliseconds);
  finally
   SysUtils.FindClose(SR)
  end;
end;

Setzen Sie unter .NET die Funktion GetCreationTime ein, die Sie im Namespace System.IO.File finden:

uses System.IO;

Label1.Text:=System.IO.file.GetCreationTime('C:test.txt').ToString;

Auch hier muss als Parameter der komplette Dateiname übergeben werden.
Unter Kylix funktioniert folgendes:

uses Libc;

function GetCreationTime(const Filename: string): TDateTime;
var
st: TStatBuf;
begin
if stat(PChar(Filename), st)  -1 then
  Result := FileDateToDateTime(st.st_ctime)
else
  Result := 0;
end;