爲什麼下面的代碼中文件的日期沒有改變?用C爲什麼setLastModified(time)不適用於此文件?
fLocal.location
=現有的文件:\
fLocal.date
=日期在長
boolean x = new File(fLocal.location).setLastModified(Long.parseLong(fLocal.date));
System.out.println("Changed: " + x);
System.out.println(new Date(new File(fLocal.location).lastModified()));
System.out.println(new Date(Long.parseLong(fLocal.date)));
輸出設置:
Changed: false
Fri Feb 15 23:02:51 CET 2013
Fri Feb 15 22:49:34 CET 2013
您的代碼是否具有對該文件的寫入權限?文件是否處於打開狀態? – JoshDM 2013-02-15 22:21:51
您當前正在使用任何其他應用程序閱讀文件嗎?這些都是可能會阻止您更改文件時間的項目。用一行文本創建一個簡單的純文本文件,保存並關閉編輯器。然後嘗試使用該文件。確保你在你的文件對象上調用'exists()',然後試圖改變它以確保你實際上有一個有效的文件。 – JoshDM 2013-02-15 22:27:46
直接在C:\下工作是一個特別糟糕的想法,因爲a)在最近的Windows版本中,您不應該觸摸/更改那裏的文件和目錄b)您可能意外覆蓋或刪除操作系統文件(如引導配置文件)。 – Ingo 2013-02-15 23:05:44