File类——指定路径下,过滤关键字,打印出文件的全路径

博客介绍在指定路径下,过滤关键字并打印文件全路径的方法。展示了相关代码及运行结果,以过滤“java”关键字为例进行了说明。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

如题,指定路径下,过滤关键字,打印出文件的全路径

用到的方法:

  1. List item
  2. 在这里插入图片描述
  3. 在这里插入图片描述
  4. 在这里插入图片描述
  5. 在这里插入图片描述
  6. 在这里插入图片描述
  7. 在这里插入图片描述

代码展示:

public class Demo {
    /*
    * @param path:指定路径
     * @param filter:过滤关键词
     */
    public static void searchFile(String path, String filter) {

        File file = new File(path); //新建一个file实例

        if(!file.exists()){   //如果文件不存在,直接返回
            return;
        }
        if(file.isFile() && file.getName().contains(filter)){  //如果当前路径表示的是标准文件 并且 文件的名字包含过滤关键字filter
            System.out.println(file.getAbsolutePath());   //打印出文件的全路径
            return;
        }
        if(file.isDirectory()){  //如果当前路径是一个目录,调用searchDir函数
            searchDir(file,filter);
        }

    }
    public static void searchDir(File file, String filter){

        FilenameFilter filenameFilter = new FilenameFilter() {
            @Override
            public boolean accept(File dir, String name) {    //重写FilenameFilter的accept方法:测试指定文件是否应该包含在某一文件列表中
                File file1 = new File(dir,name);
                return file1.isFile() && !file.isHidden();  //如果路径下的文件是标准文件  并且 不是隐藏文件,则返回
            }
         };
        File[] list = file.listFiles(filenameFilter);   //返回抽象路径名数组,这些路径名表示此抽象路径名表示的目录中满足指定过滤器的文件和目录
        for (int i = 0; i < list.length ; i++) {  //遍历当前数组
            File path1 = list[i];
            if(path1.getName().contains(filter)){  //当前的文件名包含过滤的关键字
                System.out.println(path1.getAbsolutePath());  //打印出当前的全路径
            }

            FilenameFilter dirFilter = new FilenameFilter() {
                @Override
                public boolean accept(File dir, String name) {
                    File file1 = new File(dir,name);
                    return file1.isDirectory();  //过滤带关键字的目录
                }
            };
            File[] dir = file.listFiles(dirFilter);
            for (int j = 0; j < dir.length; j++) {
                File file1 = dir[j];
                searchDir(file1,filter);  //迭代
            }

        }
    }
    public static void main(String[] args) {
       String path = "E:\\JDK\\jre\\bin";
       searchFile(path,"java");

    }
}

运行结果:

(打印过滤出的“java”关键字)
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值