JAVA遍歷檔案路徑下的所有檔案,根據最後修改時間排序,並輸出檔案地址和最後修改時間
阿新 • • 發佈:2021-01-16
技術標籤:java
程式碼
import java.io.File; import java.util.*; public class FindLastUpdateFile { public static void main(String[] args) { String dataFileTempDir = "檔案地址"; List<File> newfileList = new ArrayList<>(); List<File> filesList = getFilesList(dataFileTempDir, newfileList); File[] files = filesList.toArray(new File[0]); Arrays.sort(files, new FindLastUpdateFile.CompratorByLastModified()); for (File file : files) { System.out.println(file.getAbsolutePath() + " 【" + new Date(file.lastModified()).toLocaleString() + "】"); } } public static List<File> getFilesList(String filePath, List<File> fileList) { File root = new File(filePath); if (!root.exists()) { System.out.println(filePath + " not exist!"); } else { File[] files = root.listFiles(); for (File file : files) { if (file.isDirectory()) { getFilesList(file.getAbsolutePath(), fileList); } else { fileList.add(file); } } } return fileList; } //根據檔案修改時間進行比較的內部類 static class CompratorByLastModified implements Comparator<File> { public int compare(File f1, File f2) { long diff = f1.lastModified() - f2.lastModified(); if (diff > 0) {// 倒序排列為-1 正序為1 return -1; } else if (diff == 0) { return 0; } else {// 倒序排列為1 正序為-1 return 1; } } } }