{Funktionen zum Ermitteln und Setzen eines Dateidatums von Peter Haas} function GetFileDateTime(const AFilename:String; var Value:TDateTime):Boolean; {Datum der letzten Änderung ermitteln} var i : Integer; begin Result:=False; i:=FileAge(AFilename); if i=-1 then Exit; Value:=FileDateToDateTime(i); Result:=True; end; function SetFileAge(const AFilename:String; Age:Integer):Integer; {Datum der letzten Änderung setzen} var h : Integer; begin Result:=-1; h:=FileOpen(AFilename,fmOpenWrite); if h=-1 then Exit; try Result:=FileSetDate(h,Age); finally FileClose(h); end; end; function GetFileCreateDateTime(const AFileName:String; var AValue:TDateTime):Boolean; {Datum der Erstellung ermitteln} var Handle : THandle; FindData : TWin32FindData; LocalFileTime : TFileTime; DosFileTime : Integer; begin Result:=False; Handle:=FindFirstFile(PChar(AFileName),FindData); if Handle<>INVALID_HANDLE_VALUE then begin WinProcs.FindClose(Handle); Result:=((FindData.dwFileAttributes and FILE_ATTRIBUTE_DIRECTORY)=0) and FileTimeToLocalFileTime(FindData.ftCreationTime,LocalFileTime) and FileTimeToDosDateTime(LocalFileTime,LongRec(DosFileTime).Hi, LongRec(DosFileTime).Lo); if Result then AValue:=FileDateToDateTime(DosFileTime); end; end; function SetFileCreateDateTime(const AFileName:String; AValue:TDateTime):Boolean; {Datum der Erstellung setzen} var Handle : THandle; LocalFileTime : TFileTime; FileTime : TFileTime; DosFileTime : Integer; begin Result:=False; DosFileTime:=DateTimeToFileDate(AValue); if DosDateTimeToFileTime(LongRec(DosFileTime).Hi, LongRec(DosFileTime).Lo,LocalFileTime) and LocalFileTimeToFileTime(LocalFileTime,FileTime) then begin Handle:=FileOpen(AFilename,fmOpenWrite); if (Handle<>-1) then begin Result:=SetFileTime(Handle,@FileTime,Nil,Nil); FileClose(Handle); end; end; end;