Windows兼容的文件系统的文件时间分辨率

我试图编写一个文件同步应用程序,可以在不同的Windows机器上使用任何兼容的文件系统通用。 我有一个要求,规范文件的时间戳之前,两台机器之间的同步到一个特定的粒度,以便在同步工作完成后,两个独立的机器上的文件似乎是时间戳相同的。 对于我的目的,我只需要规范化文件时间戳。 对于每个要同步的文件,我只需要规范化最后的写入时间和创build时间。

MSDN有这样的说FILETIME结构和它的解决scheme :

不是所有的文件系统都能logging创build和上次访问时间,并不是所有文件系统都以相同的方式logging它们。 例如,在NT FAT上,创build时间的分辨率为10毫秒,写入时间的分辨率为2秒,访问时间的分辨率为1天(实际上是访问date)。 在NTFS上,访问时间的分辨率为1小时。 因此, GetFileTime函数可能不会使用SetFileTime函数返回相同的文件时间信息集。 此外,FAT在本地时间在磁盘上logging时间。 但是,NTFS以UTClogging磁盘上的时间。 有关更多信息,请参阅文件时间。

根据维基百科 :

Windows使用FAT,NTFS,exFAT,Live文件系统和ReFS文件系统(其中最后一个仅在Windows Server 2012中受支持和可用; Windows无法从其启动)。

换句话说,我的问题可以概括为:

在FAT,NTFS,exFAT,Live File System和ReFS的分组中,

  1. 在Windows中,哪一个文件的最后写入时间的分辨率最差?
  2. 在Windows中,哪一个文件创build时间的分辨率最差?

我已经尝试过search,但无法find这些不同Windows兼容文件系统之间的文件时间戳分辨率差异的详细信息。

我在这里找到了我的答案,转到每个文件系统的文章并查找其日期解析

FAT8

不记录日期,在Windows中不受支持。

FAT12,FAT16,FAT16B和FAT32

其中一些在Windows中不受支持。

  • 上次修改时间:2秒
  • 创建时间:10毫秒
  • 访问时间:1天
  • 删除时间:2秒

exFAT的

所有记录10毫秒。

NTFS

所有记录均为100 ns。

实时文件系统(UDF)

所有记录1μs。

裁判

无法找到解决方案的细节,但它相当现代,所以我认为大部分最糟糕的情况是在上面,目前没有多少人会使用它。 也许有人能发现这个帖子。

所以,要回答这个问题:

1.哪一个文件的最后写入时间在Windows中的分辨率最差?

2秒,FAT文件系统。

2.在Windows中,哪个文件的创建时间最差?

10毫秒,也是FAT文件系统。