java File遍历文件夹及按一定的规则抽取文件路径 和 获取时间目录中的最大日期目录

//aa为类对象

本例子 目录结构为 G:\\group2\\日期目录ArrayList<String> folderLastDate = aa.getFolderLastDate("G:\\group2");
long temp=0;
//找出最大的时间目录
for (int i = 0; i <folderLastDate.size() ; i++) {
    String path = folderLastDate.get(i);
    long pathValue;
    try{
        pathValue= Long.parseLong(path);
        if(temp<=pathValue){
            temp=pathValue;
        }
    }catch (Exception e){
        System.out.println("请按照规则放置目录,文件夹格式为:年月日20 例如:2020011220");
    }
}
System.out.println(temp);
SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHH");
Date parse = sdf.parse(String.valueOf(temp));
//Date 转成 LocalDate 类型
LocalDate taskLocalDate=parse.toInstant().atZone(ZoneId.systemDefault()).toLocalDate();
System.out.println(taskLocalDate);
//aa为类对象
ArrayList<File> files = aa.getListFiles("G:\\8888");
// SystemUtil.printFilesFilePath(files);
for (int i = 0; i <files.size() ; i++) {
    System.out.println(files.get(i).getPath());
}
-------------------------------------------------------------------
private ArrayList<File> getListFiles(Object obj) {
    File directory = null;
    if (obj instanceof File) {
        directory = (File) obj;
    } else {
        directory = new File(obj.toString());
    }
    ArrayList<File> files = new ArrayList<File>();
    int levle;
    if (directory.isFile()) {
        files.add(directory);
        return files;
    } else if (directory.isDirectory()) {
        File[] fileArr = directory.listFiles();
        for (int i = 0; i < fileArr.length; i++) {
            File fileItem = fileArr[i];
            //是目录而且是以20结尾的目录或以1111结尾的目录
            if(fileItem.isDirectory() && (fileItem.getName().endsWith("20") || fileItem.getName().equals("1111")
                    )) {
                files.addAll(getListFiles(fileItem));
                //不是目录
            }else if(!fileItem.isDirectory()){
                String fileName=fileItem.getName();
                //文件以222或333或444 并以.png结尾的文件
                if((fileName.startsWith("222") && fileName.endsWith(".png")) ||
                        (fileName.startsWith("333") && fileName.endsWith(".png")) ||
                        (fileName.startsWith("444") && fileName.endsWith(".png"))){
                    files.addAll(getListFiles(fileItem));
                }
            }
        }
    }
    return files;
}
-------------------------------------------------------------------------
//抽取时间目录
private ArrayList<String> getFolderLastDate(Object obj){
    File directory = null;
    if (obj instanceof File) {
        directory = (File) obj;
    } else {
        directory = new File(obj.toString());
    }
    ArrayList<String> FolderPath = new ArrayList<String>();
   if (directory.isDirectory()) {
        File[] fileArr = directory.listFiles();
        for (int i = 0; i < fileArr.length; i++) {
            File fileItem = fileArr[i];
            //是目录而且是以20结尾的目录
            if(fileItem.isDirectory() && (fileItem.getName().endsWith("20"))
            ) {
                FolderPath.add(fileItem.getName());
            }
        }
    }
    return FolderPath;
}
发布了43 篇原创文章 · 获赞 2 · 访问量 657

猜你喜欢

转载自blog.csdn.net/qq_33348135/article/details/103997408