2011-11-29 105 views
5

我們正在使用以下行來獲取文件的上次訪問日期和時間。.Net File.GetLastAccessTime更新文件的上次訪問時間

DateTime dtLastAccesstime = File.GetLastAccessTime(sFilePath); 

但是我們面臨奇怪的問題,上面的調用本身修改了上次訪問時間。因此,我們有效地將當前時間作爲上次訪問時間。

+0

您確定附近沒有可能修改上次訪問日期的代碼嗎? – madd0

+5

你在這行代碼之前是否用'sFilePath'做了任何事情?有一個很好的文章雷蒙德陳用[無害化活動的非詳盡列表更新上次訪問時間(http://blogs.msdn.com/b/oldnewthing/archive/2011/10/10/10222560.aspx ) –

回答

7

您可能會發現this post有用的,特別是:

在Windows Vista中,maintaining the last-access time is disabled by default開始。

這意味着現在大多數操作系統不會維持最近訪問時間(我認爲這可能會導致您看到的奇怪行爲)。

即使這不是這篇文章重點介紹了一些在許多情況下,其中的最後訪問時間可能已更新,當你不是故意的情況下 - 你可以確保您的應用程序不執行任何其他文件訪問?

+0

嗨,感謝您的意見和幫助。我們已經向客戶解釋了這一點,他同意免除LastAccessTime的要求。 – SantoshTupe