java 过滤指定后缀文件

本文介绍了如何在Java中使用FilenameFilter来过滤指定后缀的文件。通过实现FilenameFilter接口并重写accept方法,可以筛选出以.html为后缀的文件。代码示例展示了过滤过程和递归遍历目录的实现。

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

通过FilenameFilter实现过滤文件后缀,下面是实现方法

 

 public static Map listPath(File file) {
        
        // 接收筛选过后的文件对象数组
        //用文件对象调用listFiles(FilenameFilter filter);方法,
        //返回抽象路径名数组,这些路径名表示此抽象路径名表示的目录中满足指定过滤器的文件和目录
        File files[] = file.listFiles(new MyFilenameFilter());
        //遍历出指定文件路径下的所有符合筛选条件的文件
        for(File f: files){
            if(f.isDirectory()){
                listPath(f);//递归遍历下
            }else{
                readFile(f);//  读取文件的方法
                System.out.println(f);
            }
        }
        return map;           
    }

package com.common;

import java.io.File;
import java.io.FilenameFilter;

public class MyFilenameFilter implements FilenameFilter {
    
    /**
     * 重写文件过滤器accept方法
     * param dir:当前文件  name:当前文件名
     * return boolean true or false
     *
     */
    @Override
    public boolean accept(File dir, String name) {
        // 创建返回值
        boolean flag = true;

        //dir.toString().indexOf("test")<0&& 是否过滤掉包含test的目录结构
        if (name.toLowerCase().endsWith(".html")) {
            //System.out.println(dir.toString());
        }else if((new File(dir, name).isDirectory())){
            
        }else {
            flag = false;
        }
          
        //当返回true时,表示传入的文件满足条件
        return flag;
    }

}

FilenameFileter介绍:

Java.io.FilenameFilter是文件名过滤器,用来过滤不符合规格的文件名,并返回合格的文件;

1.实现FilenameFilter接口;

2.实现boolean accept(File dir,String name);   //dir表示文件的当前目录,name表示文件名;

class MyFilter implements FilenameFilter{

private String type;            //type为需要过滤的条件,比如如果type=".jpg",则只能返回后缀为jpg的文件

public MyFilter(String type){

this.type = type;

}

public boolean accept(File dir,String name){           //返回true的文件则合格

 

}

}

转载于:https://my.oschina.net/u/3065626/blog/791876

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值