delphi 获取目录创建日期为TDateTime

7dl7o3gd  于 2023-03-29  发布在  其他
关注(0)|答案(2)|浏览(139)

我想知道,我如何才能得到一个文件夹的创建日期为TDateTime
FileAge()不能处理文件夹,只能处理文件,所以很遗憾datetime := FileDateToDateTime(FileAge())不适合我。
任何帮助都将不胜感激,因为我在这里有点为难。

7vux5j2d

7vux5j2d2#

您正在调用的FileAge()版本已被弃用(编译器应该会警告您)。您应该使用具有TDateTime输出参数的较新重载:

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

例如:

if FileAge(path, datetime) then
begin
  // use datetime ...
end;

在任何情况下,两个版本的FileAge()都在内部使用Win32 GetFileAttributesEx()和/或FindFirstFile() API,它们都可以很好地处理文件夹,只是FileAge()过滤输出以忽略文件夹。
因此,直接使用Win32 API即可。或者,您可以使用RTL的FileGetDateTimeInfo()函数:

function FileGetDateTimeInfo(const FileName: string; out DateTime: TDateTimeInfoRec; FollowLink: Boolean = True): Boolean;

TDateTimeInfoRec具有TDateTime类型的CreationTime属性。
例如:

var
  info: TDateTimeInfoRec;

if FileGetDateTimeInfo(path, info) then
begin
  datetime := info.CreationTime;
  // use datetime ...
end;

相关问题