我试图在文件上次修改为毫秒时获取文件的时间戳。目前如果我使用:
FileAge(Filename);
我将最后修改日期/时间改为秒。例如:12:00:54。是否可以用毫秒来获取最后修改的日期和时间?
答案 0 :(得分:4)
使用System.IOUtils单元中的TFile.GetLastWriteTime
或TFile.GetLastWriteTimeUtc
。
如果系统支持您所需的准确度,那么这些功能将提供该准确度的日期。当然这一切都取决于使用的文件系统。
答案 1 :(得分:0)
FileAge()
有两个版本:
function FileAge(const FileName: string): Integer;
此版本已弃用。
在Windows上,它使用GetFileAttributesEx()
和/或FindFirstFile()
将时间戳检索为FILETIME
( 100纳秒精度),但随后使用FileTimeToDosDateTime()
将其转换为DOS编码的整数,其秒精度。
在POSIX上,它使用stat()
,它将时间戳返回为自纪元以来经过的秒。
function FileAge(const FileName: string; out FileDateTime: TDateTime; FollowLink: Boolean = True): Boolean;
在Windows上,它会撤消与弃用版本相同的时间戳,但会将FILETIME
转换为SYSTEMTIME
,然后使用毫秒精度转换为TDateTime
在POSIX上,它使用stat()
,因此具有秒精度。