我想弄清楚何時以及如何Windows文件更新文件訪問時間。 首先,由於性能原因,大多數Windows安裝都禁用了「文件訪問時間」,因此,在爲了激活NTFS文件系統的上次訪問時間之前,需要執行以下操作:修改密鑰[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\FileSystem]
值名稱NtfsDisableLastAccessUpdate
到DWORD 0
值數據(如果它當然設置爲1)。如果它不存在,只需創建它。在Windows + NTFS文件訪問時間
在閱讀File Times article MSDN上我仍然懷疑Windows如何更新訪問時間。
我的問題如下:
- 做時發出WINAPI
CreateFile()
與FILE_READ_ATTRIBUTES
訪問時間更新?在我的情況下,雖然以編程方式進行,但它沒有。通過資源管理器Shell打開該文件的文件屬性對話框會更新訪問時間。 - 在發佈WinApi
ExtractIconEx()
以從文件中讀取圖標時,訪問時間是否更新? 在我的情況下這樣做編程,它沒有。通過資源管理器Shell打開該文件的文件屬性對話框會更新訪問時間。
如果你問我,這兩種情況都應該更新文件訪問時間,但在我看來,直接WinApi調用不會更新它們,或者Window/NTFS驅動程序真的滯後, Windows資源管理器做得很好。你認爲什麼是或可能是這裏的問題?
作爲一個側面說明,我沒有做CloseHandle()
按:
有關文件 時間戳的唯一保證是該文件的時間 正確反映時,使改變手柄 是關閉。
我的結論是,網絡上的觀點確實是真實的,而且Windows以隨機方式更新文件訪問時間,因此實際上不應該依賴Windows文件訪問時間。
題外話:對不起法醫學家,你必須使用另一種方法證明訪問時間,或者你可以在幾秒鐘內讓你的案件失效。 :P
但是,從資源管理器發出文件 - >屬性會改變最後的訪問時間,是因爲它抓住了圖標?如果文件沒有嵌入自己的圖標,並且操作系統根據擴展名默認分配一個文件,那麼它們的訪問時間會更新。如果文件屬性/元數據不是文件屬性/元數據,那麼瀏覽器必須從文件中獲取其他類型的信息? – Shinnok 2011-02-11 14:36:28