JAVA 文件的递归删除

import java.io.File;
import java.io.FileFilter;
import java.util.ArrayList;
import java.util.regex.*;

public class FilterTest {
    public static void main(String[] args){
        File file=new File("E:\\学习资料\\JAVA资料");
        printFile(file);
    }
    public static void printFile(File file) {
        File[] files=file.listFiles(new FileFilter(){
            @Override
            public boolean accept(File pathname){
                String[] video_strs = {".avi",".wmv",".MPEG",".MP4"};
                boolean res_bool = false;
                for (String video_str:video_strs) {
                    if (pathname.getName().endsWith(video_str)) {
                        res_bool = true;
                    }
                }
                return res_bool || pathname.isDirectory();
            }
        });
        //循环打印
        final ArrayList<String> strings = new ArrayList<String>();
        for(File file_:files){
            if (file_.isDirectory()) {
                FilterTest.printFile(file_);
            }
            else{
                String fileName = file_.getName();
                // 第一个解决方法切片
                // String[] splitStr = fileName.split("-");
                // 第二个解决方案 正则匹配
                System.out.println(fileName);
                Pattern r = Pattern.compile("([0-9]{0,3})");
                Matcher matcher = r.matcher(fileName);
                if (matcher.find()) {
                    System.out.println("matcher.group(0):"+matcher.group(0));
                    // 如果不包含
                    if (!strings.contains(matcher.group(0))){
                        strings.add(matcher.group(0));
                        // 如果包含
                    }
                    else{
                        file_.delete();
                        System.out.println("删除文件 " + file_.getName() + " 成功");
                    }
                }
                else {
                    System.out.println("匹配不到该参数: "+ fileName);
                }
            }
        }

    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值