JAVA 删除目标文件 、过滤器

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_40990836/article/details/78956114

一、删除目标文件

public class File07{
    // ① 获取目标文件
    // ② 删除目标文件
    // ③ 验证是否删除成功
    public static void main(String[] args){
        File target = new File("file05");

    }
    //  非空文件夹不能直接删除
    //  需求:如何一次性删除非空文件夹

    private static boolean removeTargetFoleder(File file){
        //  如果参数为null  需要做安全处理
        if(file == null){
            return false;
        }
        //  文件如果不存在  可以直接返回false
        if(!file.exists()){
            return false;
        }
        //  如果是文件 或者 空文件夹,可以直接做 delete() 操作
        if(file.isFile() || file.list().length == 0){
            return file.delete();
        }
        //  递归处理
        //  处理所有子文件以及文件夹
        try{
            for(File f : file.listFile()){
            // 遇到文件夹  优先递归处理
            if(f.isDirectory()){
                removeTargetFolder(f);
            }
            //  如果不是文件夹  可以直接删除 
            //  如果是文件夹 也是处理后的空文件夹 也可以直接删除
                f.delete()
            }
        }catch(Exception e){
            //  如果删除大量文件和文件夹  处理过程中可能出现 删除失败 或者  取消删除情况
            return false;
        }   
        return file.delete();
    }
}

二、过滤器

// 过滤器:获取满足条件的目标文件
// File 相关过滤器:
// list(FilenameFilter)
// listFile(FilenameFilter)
// listFile(FileFilter filter)
// 获取过滤器过滤后的满足条件的File(String)数组
public class File08{
    public static void man(String[] args){
        // ① 获取目标文件
        File target = new File("file04");
        // ② 获取目标文件的子目录满足条件的以及文件()
        String[] names = target.list();
        // 1).生成条件(过滤器对象)
        // 2).获取满足条件的目标(过滤后的目标)  
        File[] targetList = target.listFiles(new FilenameFilter(){
            //  参数列表
            //  dir:file04 对应的file 类型对象
            //  name : file04 文件夹下所有一级文件(夹)的文件名
            public boolean accept(File dir,String name){
                //  如果name 的后缀等于.java 那么 过滤出来
                if(name.endsWith(".java")){
                    return true;
                }
                return false;
            }
        })
        // ③ 遍历打印
        for(File file : targetList){
            System.out.println(file.getName());
        )
    }
}

猜你喜欢

转载自blog.csdn.net/qq_40990836/article/details/78956114