为什么 Windows 将其中一个文件称为“较新”而它们的时间戳相同?

WBT*_*WBT 17 windows windows-7

当 Windows 显示此对话框时,它如何比较这两个修改日期中的哪一个是“较新的”?

起初,我以为 Windows 正在比较 Date Created 属性并使用此比较的结果来标记一个或另一个“(较新)”。(如果一个文件被复制到一个特定的位置,它可能有复制发生时的创建日期,而不是文件的原始创建日期。)但是,用另一个文件复制它,结果是“更新” " 似乎正好相反:

它显示为复制或移动:

对于背景,test2 中的文件是 test1 中文件的先前制作的副本。

use*_*686 23

NTFS 文件系统中的时间戳具有 100 纳秒(0.0000001 秒)的分辨率。即使属性对话框显示相同的四舍五入值,也可能是创建的文件彼此相距不到十分之一秒。

(大多数文件系统以 ?s 或 ns 为单位测量时间。FAT32 有点陈旧,会将时间戳舍入为 2 秒。)

尝试以下方法之一来比较完整的时间戳:

wmic datafile where name="c:\\foo\\bar.txt" get lastmodified
Run Code Online (Sandbox Code Playgroud)

电源外壳:

(Get-ChildItem c:\foo\bar.txt).LastWriteTime.ToString("o")
Run Code Online (Sandbox Code Playgroud)

  • 这似乎是答案;最终接受是可能的。一个给出“20170115002742.000000-300”的LastModified,另一个给出“20170115002742.160883-300”的LastModified。在额外的测试中,似乎某些复制操作会消除小数秒信息。 (5认同)
  • 甚至比这更糟糕。FAT32 将文件时间存储为*本地时间*,这造成了各种痛苦和悲伤。另外,修改时间的分辨率为 2 秒,创建时间的分辨率为 10 秒,访问时间的分辨率为 1 天! (5认同)