如何在Delphi中获取创build/最后修改文件的date?

我想获得一个文件这些属性作为整数值。

Delphians倾向于喜欢FindFirst方法(SearchRec结构有一些),但是我建议使用Win32 API函数GetFileAttributesEx。

尝试

function FileAge(const FileName: string; out FileDateTime: TDateTime): Boolean; 

从SysUtils。

从DSiWin32免费软件库:

 function DSiFileTimeToDateTime(fileTime: TFileTime; var dateTime: TDateTime): boolean; var sysTime: TSystemTime; begin Result := FileTimeToSystemTime(fileTime, sysTime); if Result then dateTime := SystemTimeToDateTime(sysTime); end; { DSiFileTimeToDateTime } function DSiGetFileTimes(const fileName: string; var creationTime, lastAccessTime, lastModificationTime: TDateTime): boolean; var fileHandle : cardinal; fsCreationTime : TFileTime; fsLastAccessTime : TFileTime; fsLastModificationTime: TFileTime; begin Result := false; fileHandle := CreateFile(PChar(fileName), GENERIC_READ, FILE_SHARE_READ, nil, OPEN_EXISTING, 0, 0); if fileHandle <> INVALID_HANDLE_VALUE then try Result := GetFileTime(fileHandle, @fsCreationTime, @fsLastAccessTime, @fsLastModificationTime) and DSiFileTimeToDateTime(fsCreationTime, creationTime) and DSiFileTimeToDateTime(fsLastAccessTime, lastAccessTime) and DSiFileTimeToDateTime(fsLastModificationTime, lastModificationTime); finally CloseHandle(fileHandle); end; end; { DSiGetFileTimes } 

这应该工作,它是本机的Delphi代码。

 function GetFileModDate(filename : string) : integer; var F : TSearchRec; begin FindFirst(filename,faAnyFile,F); Result := F.Time; //if you wanted a TDateTime, change the return type and use this line: //Result := FileDateToDatetime(F.Time); FindClose(F); end; 
 function GetFileModDate(filename : string) : TDateTime; var F : TSearchRec; begin FindFirst(filename,faAnyFile,F); Result := F.TimeStamp; //if you really wanted an Int, change the return type and use this line: //Result := F.Time; FindClose(F); end; 

F.Time已经被弃用,帮助文件说使用F.TimeStamp。
只是为了更新这个由于更高版本的德尔福

你可以调用GetFileInformationByHandle的 winapi函数。 另外, JCL还有一个你也可以使用的GetFileLastWrite函数

System.IOUtils确实有TFile记录与获取文件时间的几个函数,例如GetCreationTime,GetLastAccessTime,GetLastWriteTime