假設我在系統(特別是Ubuntu)上有一個特定的目錄,其中包含由其他程序生成的備份或日誌。我如何找到並打開最近創建(或修改)的文件作爲Java中的File
?如何在Java中獲取目錄的最新文件
我需要一個解決方案,不需要依賴於文件名以時間戳或像log1,log2, etc...
這樣的連續名稱命名的場景。子目錄將被忽略。
假設我在系統(特別是Ubuntu)上有一個特定的目錄,其中包含由其他程序生成的備份或日誌。我如何找到並打開最近創建(或修改)的文件作爲Java中的File
?如何在Java中獲取目錄的最新文件
我需要一個解決方案,不需要依賴於文件名以時間戳或像log1,log2, etc...
這樣的連續名稱命名的場景。子目錄將被忽略。
您可以遍歷目錄的文件並比較它們並找到最後修改的文件。
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
其次這個問題的答案應該做你想要什麼:
stackoverflow.com/questions/2064694/how-do-i-find-the-last-modified-file-in-a-directory-in-java
file.lastModified()
給你的時間特定的文件最後修改後,您可以簡單地爲每個文件獲取該時間,然後在時間上循環找到「最新」的時間。
問題似乎是鏈接中詢問的問題的重複。
是的,這是重複的。我不幸在我的搜索中找不到這個。 –