为什么文件修改时间在复制到USB时自动增加2秒



好吧,我有一个奇怪的时刻,试图在USB驱动器中获取文档的文件修改时间通常,我认为当文件复制到USB驱动器时,文件修改时间不会改变。然而,当我将任何文件复制到USB驱动器时,我发现修改文件的时间增加了两倍。

然而,在研究中,我发现其他人在网上也遇到过这个问题,但除了维基百科上的这篇文章外,我还没有看到任何答案。这篇文章说,FAT分区上碎片文件的读写时间增加了,但并没有为我澄清

我无法验证是否所有文件都会发生这种情况。然而,我想知道的是,当文件被复制到USB驱动器时,修改后的时间到底发生了什么的任何官方来源。建议我自己修改代码中的文件修改时间吗,即减去两秒

从NTFS复制到FAT:时时间戳更改

将文件写入驱动器时,FAT驱动器上的文件时间戳四舍五入到最接近的两秒(偶数)。将文件写入驱动器时,NTFS驱动器上的文件时间戳四舍五入到最接近的100纳秒。因此,FAT驱动器上的文件时间戳总是以偶数秒结束,而NTFS驱动器上的时间戳可以以偶数秒或奇数秒结束。

当文件从NTFS驱动器复制到FAT驱动器时,必须进行一些文件时间戳舍入;文件时间戳四舍五入到下一个偶数秒。

这不太可能与USB有关,但很可能与FAT文件系统有关(对于上次修改的时间戳,其粒度为2sec)。

您是否验证了它实际上将时间戳增加了2秒,或者您是否在创建文件后非常快地复制到外部驱动器?

我不知道这是否是一个通用的解决方案,但我解决了我的问题,如下所示:

  1. 首先,我会获取并存储上次修改的时间,并检查它是否以奇数结束。如果是,我会将其更改为偶数,即在NTFS磁盘上将其增加一

  2. 我将其复制到U盘,并将上次修改的时间设置为上面得到的日期时间(偶数)。

最新更新