2017-03-11 114 views
0

我沒有從繼承自File類的類中得到正確的最後修改。 我的方法是這樣的:文件最後修改的問題

public Date getLastModification() { 
    Calendar cal = Calendar.getInstance(); 
    cal.setTimeInMillis(lastModified()); 
    Date dateRepresentation = cal.getTime(); 
    return dateRepresentation; 
} 

當我打電話的的toString這個方法,這始終打印週四1月1 01:00:00 CET 1970年 我審閱文件的API,我不明白爲什麼會這樣。你能幫我正確實施嗎?

+0

你能顯示lastModified()的代碼嗎? – jjj

+1

我不定義方法lastModified(),因爲是File的方法,我在API中搜索 – David

回答

0

你的邏輯適合我。你應該確保你的文件存在

FileTest test = new FileTest("test.txt"); 
System.out.println("Existing:" + test.getLastModification()); 

FileTest test2 = new FileTest(""); 
System.out.println("Not existing: " + test2.getLastModification()); 

輸出爲:

Sat Mar 11 10:24:39 CET 2017 
File does not exist 
Thu Jan 01 01:00:00 CET 1970 

FileTest像:

public class FileTest extends File { 


    public FileTest(String pathname) { 
     super(pathname); 
    } 

    public Date getLastModification() { 
     if(!exists()){ 
      System.out.println("File does not exist"); 
     } 
     Calendar cal = Calendar.getInstance(); 
     cal.setTimeInMillis(lastModified()); 
     return cal.getTime(); 
    } 
} 
0

造成這種情況的唯一原因是文件不在路徑存在爲此您已創建自定義文件對象,因此在代碼cal.setTimeInMillis(lastModified());lastModified()是返回ning 0,所以你會看到Calendar API的初始化本地日期。