2016-03-09 124 views
2

假設我在系統(特別是Ubuntu)上有一個特定的目錄,其中包含由其他程序生成的備份或日誌。我如何找到並打開最近創建(或修改)的文件作爲Java中的File如何在Java中獲取目錄的最新文件

我需要一個解決方案,不需要依賴於文件名以時間戳或像log1,log2, etc...這樣的連續名稱命名的場景。子目錄將被忽略。

回答

1

您可以遍歷目錄的文件並比較它們並找到最後修改的文件。

public File getLastModifiedFile(File directory) { 
    File[] files = directory.listFiles(); 
    if (files.length == 0) return null; 
    Arrays.sort(files, new Comparator<File>() { 
     public int compare(File o1, File o2) { 
      return new Long(o2.lastModified()).compareTo(o1.lastModified()); 
     }}); 
    return files[0]; 
} 

要獲得最後修改時間:

File file = getLastModifiedTime("C:\abcd"); 
long lastModified = file != null ? file.lastModified() : -1 // -1 or whatever convention you want to infer no file exists 
相關問題