欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

JAVA遍历文件路径下的所有文件,根据最后修改时间排序,并输出文件地址和最后修改时间

程序员文章站 2022-03-03 12:36:48
...

代码

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;
            }
        }
    }

}
相关标签: java