我正在使用 检查文件的上次访问时间GetFileTime
,它有效。但它甚至给出了我上次右键单击它的时间,这是预期的吗?但它没有显示在Accessed:
文件属性的常规选项卡中的字段中。
答案1
简短回答:是的,右键单击文件会更新有关该文件的信息并触发记录的更新,可以通过 GetFileTime 检索。
然而,真正的答案有点复杂。
从技术上讲,NTFS 只需列出目录中的文件即可更新 LastAccess 时间。因此,只需打开文件所在的目录即可触发该目录中所有文件的更新。
从 Windows 7 开始,有一个注册表项可禁用此功能,以防止 NTFS 日志填满。默认值可防止 NTFS 在列出 NTFS 卷中的目录时更新每个文件和目录的最后访问时间戳:https://technet.microsoft.com/en-us/library/cc959914.aspx
不同的文件系统和系统中的不同指标也具有不同的时间分辨率:
并非所有文件系统都能记录创建时间和上次访问时间,而且并非所有文件系统都以相同的方式记录它们。例如,FAT 上的创建时间精度为 10 毫秒,而写入时间精度为 2 秒,访问时间精度为 1 天,因此它实际上是访问日期。NTFS 文件系统将文件的上次访问时间的更新延迟最多 1 小时。
请参阅此处以了解更多信息:http://msdn.microsoft.com/en-us/library/ms724290(v=vs.85).aspx
对于文件,该结构指定文件上次读取或写入的时间。对于目录,该结构指定目录的创建时间。对于文件和目录,指定的日期都是正确的,但时间始终设置为午夜。如果底层文件系统不支持上次访问时间,则此成员为零。
从这里:http://msdn.microsoft.com/en-us/library/aa365739(v=vs.85).aspx