我正在嘗試編寫一個文件同步應用程序,該應用程序能夠在使用任何兼容文件系統的不同Windows計算機上普遍使用。我需要在文件時間戳在兩臺計算機之間同步到特定粒度之前進行規範化處理,以便在同步工作完成後,文件在兩臺獨立的計算機上顯示爲時間戳相同的文件。出於我的目的,我只需要規範化文件時間戳。對於每個要同步的文件,我只需要規範化最後寫入時間和創建時間。與Windows兼容的文件系統的文件時間分辨率
MSDN has this to say about the FILETIME structure and its resolution:
並非所有文件系統可以記錄的創建和上次訪問時間,而不是 所有文件系統記錄他們以同樣的方式。例如,在NT FAT,創建時間爲10毫秒的分辨率,寫入時間有 分辨率的2秒,存取時間有1天 (真的,訪問日期)的分辨率。在NTFS上,訪問時間的分辨率爲1 小時。因此,GetFileTime函數可能不會返回使用SetFileTime函數設置的相同文件 時間信息。此外,FAT 在本地時間記錄磁盤上的時間。但是,NTFS會在UTC中記錄 磁盤上的時間。有關更多信息,請參閱文件時間。
的Windows利用了FAT,NTFS,exFAT的,實時文件系統和裁判 文件系統(最後這些僅支持和可用在 Windows Server 2012中的;的Windows無法從它啓動)。
因此,換句話說,我的問題可以概括爲這樣:
在FAT,NTFS,exFAT的,實時文件系統和裁判的分組,
- 哪一個文件的最後寫入時間在Windows中的分辨率最差?
- 哪一個對Windows的文件的創建時間最壞的分辨率是多少?
我已經嘗試過搜索,但無法找到這些不同Windows兼容文件系統之間文件時間戳分辨率差異的詳細信息。