Home » Tipps & Tricks » Dateien/Verzeichnisse » Dateieigenschaften » Dateidatum ändern

Dateidatum ändern

Das Dateidatum, das auch im Windows-Explorer zu sehen ist, kann programmseitig geändert werden. Folgende Funktion übernimmt diese Aufgabe. Als Parameter erwartet sie den Dateinamen mit Pfad sowie das neue Datum im TDateTime-Format. Nach erfolgreichem Ausführen gibt die Funktion True zurück, ansonsten False.

uses SysUtils;

function SetFileDate(const FileName: string; NewDate: TDateTime): Boolean;
var FileDate, FileHandle: Integer;
begin
  result := false;
  FileDate := DateTimeToFileDate(NewDate);
  FileHandle := FileOpen(FileName, fmOpenReadWrite or fmShareDenyWrite);
  if FileHandle > 0 then begin
    if FileSetDate(FileHandle, FileDate) = 0 then result:=true;
    FileClose(FileHandle);
  end;
end;

Beispielaufruf: Folgender Code ruft obige Funktion auf. Dabei wird der Datei C:tmpunit2.pas das neue Datum „10. Oktober 2003 Punkt 0 Uhr“ verpasst. Die Funktion EncodeDateTime, die in der Unit DateUtils definiert ist, baut aus den Einzelwerten von Jahr, Monat, Tag, Stunde, Minute, Sekunde, Millisekunde einen TDateTime-Wert zusammen, der für den Funktionsaufruf benötigt wird.

uses DateUtils;

procedure TForm1.Button1Click(Sender: TObject);
begin
  if SetFileDate('c:tmpunit2.pas', EncodeDateTime(2003, 10, 1, 0, 0, 0, 0)) then
    ShowMessage('OK!')
  else
    ShowMessage('Fehler!');
end;