为什么文件从 NTFS 复制到 FAT32 会更改文件的修改日期?

为什么文件从 NTFS 复制到 FAT32 会更改文件的修改日期?

将文件从 NTFS 分区复制到 FAT32 设备时,新文件的修改日期有时会改变 1 或 2 秒。为什么会发生这种情况?

这在我的文件同步程序中很明显,它比较修改日期并将较新的文件复制到较旧的文件上,在这种情况下,由于修改日期是一个移动的目标,所以永远无法赶上。我尝试在 Windows 资源管理器中进行拖放复制,结果也是一样。

答案1

这是因为 FAT32 的最后写入时间分辨率为 2 秒。

换句话说,您看到的是文件系统的限制:它无法精确地存储上次修改的时间。

您的同步程序在比较日期时必须留出几秒钟的时间,或者使用其他方法来确定要复制哪些文件。您可以对文件进行校验以比较内容;如果您的文件不是太多,这种方法会相当快。

答案2

我认为原始 FAT 和 FAT32 之间的唯一区别是长文件名支持和 FAT 指针的大小(从 16 位增加到 32 位),以允许在大磁盘上使用较小的簇。

我不认为他们重新调整了目录条目格式,因为自 DOS 诞生之初,该格式的分辨率就为 2 秒。这是为了节省磁盘空间,现在不那么重要了,但是非常在当时这很重要。

答案3

另一个原因是所有 NTFS 权限都被删除了。我注意到 NTFS 中的所有用户配置文件权限都不在已复制到 FAT32 的文件上。

相关内容