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

java:遍历文件,根据文件的最后修改时间排序,并封装到List集合中.

程序员文章站 2022-05-24 12:31:36
...
package test01;

import java.io.File;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Comparator;
import java.util.List;

public class Test07 {
    public static void main(String[] args) {
        // 定义list,用于文件的全路径
        List<String> fileList = new ArrayList<>();
        String filePath = "F:\\test02";
        //返回F盘文件全路径的list集合
        List<String> list = getFiles(filePath,fileList);
        for (int i =0;i<list.size();i++){
            System.out.println(i+"文件路径:"+list.get(i));
        }

    }

    private static List<String> getFiles(String filePath, List<String> fileList) {
        File dir = new File(filePath);
        //这里可以做个判断是否存在这个文件夹再进行下面操作
        if(!dir.exists()){
            System.out.println("路径不存在!");
            throw new RuntimeException();
        }
        //获取文件集合
        File[] files = dir.listFiles();
        //排序
        Arrays.sort(files, new Comparator<File>() {
            @Override
            public int compare(File o1, File o2) {
                return (int) (o1.lastModified()-o2.lastModified());
            }
        });
        //判断是否是文件夹,如果是就进行递归,不是就添加进List集合.
        //List集合特性是可以保证元素的添加顺序
        for (File file1 : files) {
            if(file1.isDirectory()){
                getFiles(file1.getAbsolutePath(), fileList);
            }else {
                fileList.add(file1.getAbsolutePath());
            }
        }
        return fileList;
    }
}