我使用一个简单的命令从文件中获取文件日期,但一直得到错误的日期.
在我的电脑上,我看了看日期是14/3/2014.但是当我运行命令时,无论我尝试什么文件,我都会得到30/12/1999,它会保持相同的返回日期.
我试过了
BackupFileDate:=FileAge(S);;
originalfiledate:=FileAge(fileName);
Run Code Online (Sandbox Code Playgroud)
和
BackupFileDate:=GetFileModDate(S);
originalfiledate:=GetFileModDate(Filename);
function GetFileModDate(filename : string) : TDateTime;
var
F : TSearchRec;
begin
FindFirst(filename,faAnyFile,F);
Result := F.TimeStamp;
//Result := F.Time;
FindClose(F);
end;
Run Code Online (Sandbox Code Playgroud)
两者都有相同的结果.PS:BackupFileDate和originalfiledate现在都被定义为TDate,我已经尝试过TDateTime,结果相同.
我想获得上次编辑文件的日期和时间.
FileAge返回操作系统用于记录文件修改日期和时间等信息的时间戳.
您应该使用FileDateToDateTime函数将Integer值转换为更易于管理的TDateTime格式:
FileDateToDateTime(FileAge(fileName));
Run Code Online (Sandbox Code Playgroud)
注意:
function FileAge(const FileName: string): Integer; overload;
Run Code Online (Sandbox Code Playgroud)
已弃用.还有另一个版本的FileAge
function FileAge(const FileName: string; out FileDateTime: TDateTime; FollowLink: Boolean = True): Boolean;
Run Code Online (Sandbox Code Playgroud)
返回FileDateTime输出参数中FileName的时间戳.
FileAge(filename, timeDate);
Run Code Online (Sandbox Code Playgroud)
编辑
根据数据的使用情况,从UTC转换为本地时间可能非常重要.