2012-01-13 70 views
2

時,我有下面的代碼行:年不正確顯示了使用GetLastWriteTime

<%= System.IO.File.GetLastWriteTime("~/Views/Home/Index.aspx").ToString("yyyy-MM-dd") %> 

在資源管理器,文件顯示爲2012/1/2上被修改。然而這個代碼輸出1600-01-02。

回答

4

您要查看的原因是:

如果path參數描述的文件不存在,這個方法返回午夜12點,1月1日,公元1601(CE)協調世界時(UTC),根據當地時間調整。

Reference

一旦調整到您的時區;這就是爲什麼你得到1600-01-02。我不相信GetLastWriteTime瞭解虛擬路徑。它期待着一條物理路徑。嘗試:

<%= System.IO.File.GetLastWriteTime(Server.MapPath("~/Views/Home/Index.aspx")).ToString("yyyy-MM-dd") %> 

您可以使用Server.MapPath到虛擬路徑映射到物理路徑。

+0

好的。巧合的是,文件的默認日期和實際日期讓我假定它實際上是找到該文件,但返回了錯誤的日期! – Brian 2012-01-18 16:07:15