将文件复制到 exFAT 驱动器时时间戳会发生变化

将文件复制到 exFAT 驱动器时时间戳会发生变化

我正在使用 Windows 10,我将 USB 笔式驱动器格式化为外置FAT

然后我复制了一个文件修改时间戳22:57:46到笔式驱动器,它保持相同的(日期无所谓)。

然后我复制了一个文件修改时间戳11:07:22到 U 盘,它会变成11:07:24

我只是使用 Explorer 进行复制过程。

问题是时间戳发生了变化。

粒度似乎不是 维基百科

或者还有什么问题?我该如何解决?

答案1

ExFAT 在 Windows 上运行时具有以下有效分辨率:

Date Created: 10ms
Date Modified: 2 s
Date Accessed: 1 day

这意味着,当在不同文件系统(如 NTFS)上修改的文件被复制到 FAT 文件系统时,它会将分辨率四舍五入为修改日期到下一个最近的 2 秒(甚至第二)。

例子:

10:05:09 will become 10:05:10
10:05:08 may become 10:05:10

仅当其日期解析度包含初始秒后的毫秒信息时才如此。如果没有,则会将其复制为 10:05:08。

对于以前基于 FAT 的文件系统(FAT32、ExFAT)上的文件,情况确实如此被复制或移动到 NTFS(或其他更高分辨率的文件系统),因此它将延续 ExFAT 报告的修改时间,即 2 秒的分辨率。因此,除非文件在存储在 NTFS 等更高分辨率的文件系统上时后来再次被修改,否则将其(未修改)移回基于 FAT 的文件系统应该不再更新,因为此类文件存储在 NTFS 中的修改时间与 FAT 所需的 2 秒分辨率相匹配,这很可能适用于您未更新的其他文件。

参考:

  1. https://stackoverflow.com/questions/11546839/why-does-file-modified-time-automatically-increase-by-2-seconds-when-copied-to-u
  2. https://devblogs.microsoft.com/oldnewthing/20140903-00/?p=83

编辑:出于某些原因,基于 Linux 的系统(例如 Ubuntu)会考虑 ExFAT 修改日期内的 10ms 分辨率数据,但 Windows 不会。相关答案:

  1. https://stackoverflow.com/questions/71072390/how-to-access-last-modified-date-time-for-file-on-exfat-with-10-ms-resolution
  2. https://answers.microsoft.com/en-us/windows/forum/all/why-does-windows-only-have-2-second-resolution-for/380ad521-9f10-46ca-88cd-078b1cf328c5

相关内容