我有一組從其他地方抄在我的Windows目錄下的文件。 在檢查中的一個文件的屬性(右鍵 - >屬性),它表明:「上次訪問」與在Java(窗口)「上次修改」文件日期
創建:今天,2013年2月11日,下午2點51分56秒
修改:週二,1月1日,2013,上午八時30分04秒
訪問的:今天,2013年2月11日,下午二時51分56秒
「創建」和「接入」領域基本上顯示時間,該文件實際上是複製到新目錄,而「修改」字段顯示原始文件的修改日期。
在Java中使用file.lastModified()
什麼我回來是「訪問」(或「創建」)日期和時間。 有沒有辦法獲得原始文件的「修改」值?
感謝您的答覆。但是這並不能解決問題。爲同一文件,上述系統輸出語句輸出是: 創建:星期一年02月11 14點50分08秒IST 2013 訪問的:星期一年02月11 16點05分16秒IST 2013 修改:星期一年02月11 14點52分09秒北京時間2013 雖然從窗戶屬性菜單,它顯示: 創建時間:今天,2013年2月11日,下午2時50分09秒 修改:週一,2012年11月19日,下午10時30分23秒 訪問的:今天,2013年2月11日,4:04:45 PM – tajji 2013-02-11 10:38:21
在Windows上,javaxt-core庫直接從Windows API返回「上次修改」日期,所以它*應該*是正確的(即它調用GetFileAttributesExW函數並解析WIN32_FILE_ATTRIBUTE_DATA)。有誰知道可用於檢索複製文件的原始修改/創建日期的不同Windows API? – Peter 2013-02-12 02:55:00
@tajji我使用代碼mjuarez對2011年創建的文件發佈了一個簡單的測試。這裏是來自javaxt的標準輸出: 創建時間:Thu Jan 19 09:25:08 EST 2012 訪問時間:Thu Jan 19 09:25:08 EST 2012 已修改:Mon Nov 28 09:15:34 EST 2011 我複製了文件使用Windows文件瀏覽器,並獲得新文件的以下標準輸出。 創建於:一月二月11 22:26:26東部標準時間2013年 訪問時間:星期一2月11日22:26:26東部時間2013年 修改時間:一月11日星期一09:15:34東部時間2011年 修改日期保持不變。此外,stdout中的日期與Windows屬性對話框中列出的日期相匹配。你的文件是如何複製的? – Peter 2013-02-12 03:53:15