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

时间:2012-07-18 17:17:03

标签: c# windows file file-io

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

然而,在研究中,我发现其他人在网上遇到过这个问题,但我还没有看到任何答案,除了this article on wikipedia,其中说明了在FAT分区上增加的碎片文件的读写时间,而不是为我澄清事情。

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

3 个答案:

答案 0 :(得分:14)

Time Stamps Change When Copying From NTFS to FAT

  

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

     

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

答案 1 :(得分:3)

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

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

答案 2 :(得分:0)

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

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

  2. 我将其复制到USB驱动器,并将上次修改时间设置为上面的日期时间(均匀)。