我试图编写一个文件同步应用程序,可以在不同的Windows机器上使用任何兼容的文件系统通用。 我有一个要求,规范文件的时间戳之前,两台机器之间的同步到一个特定的粒度,以便在同步工作完成后,两个独立的机器上的文件似乎是时间戳相同的。 对于我的目的,我只需要规范化文件时间戳。 对于每个要同步的文件,我只需要规范化最后的写入时间和创build时间。
MSDN有这样的说FILETIME结构和它的解决scheme :
不是所有的文件系统都能logging创build和上次访问时间,并不是所有文件系统都以相同的方式logging它们。 例如,在NT FAT上,创build时间的分辨率为10毫秒,写入时间的分辨率为2秒,访问时间的分辨率为1天(实际上是访问date)。 在NTFS上,访问时间的分辨率为1小时。 因此, GetFileTime函数可能不会使用SetFileTime函数返回相同的文件时间信息集。 此外,FAT在本地时间在磁盘上logging时间。 但是,NTFS以UTClogging磁盘上的时间。 有关更多信息,请参阅文件时间。
根据维基百科 :
寻找一个.NET SNMP扩展代理
什么是使用用户提供的密码encryption和解密string的简单方法,在本机Win32和.NET中都可以使用?
构buildWindows服务的安装项目时出现问题?
向后兼容WPF应用程序创build使用点networking框架4.5
Windows使用FAT,NTFS,exFAT,Live文件系统和ReFS文件系统(其中最后一个仅在Windows Server 2012中受支持和可用; Windows无法从其启动)。
换句话说,我的问题可以概括为:
在FAT,NTFS,exFAT,Live File System和ReFS的分组中,
在Windows中,哪一个文件创build时间的分辨率最差?
我已经尝试过search,但无法find这些不同Windows兼容文件系统之间的文件时间戳分辨率差异的详细信息。
OpenCVSharp:无法加载DLL“OpenCvSharpExtern”
如何刷新或刷新C#Windows窗体?
错误“目录不是空的。”当目录是empy时
如何在Windows 8.1任务pipe理器中测量磁盘的“平均响应时间”
我在这里找到了我的答案,转到每个文件系统的文章并查找其日期解析 。
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文件系统。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。