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;
