1. 程式人生 > 其它 >JAVA遍歷檔案路徑下的所有檔案,根據最後修改時間排序,並輸出檔案地址和最後修改時間

JAVA遍歷檔案路徑下的所有檔案,根據最後修改時間排序,並輸出檔案地址和最後修改時間

技術標籤: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;
            }
        }
    }

}