码迷,mamicode.com
首页 > 其他好文 > 详细

使用正则表达式过滤目录中文件名称,File和FilenameFilter的应用

时间:2019-11-16 17:46:06      阅读:65      评论:0      收藏:0      [点我收藏+]

标签:rri   bsp   array   alt   获取   new   mic   pre   return   

用DirFilter 实现FilenameFilter,能够通过正则表达式过滤目录中的文件名称;

也可以用其他方式实现其他的过滤,类似于过滤大小、类型等!

class DirFilter implements FilenameFilter{

 

    private Pattern pattern;

    public DirFilter(String regex) {

        pattern = Pattern.compile(regex);

    }

    @Override

    public boolean accept(File dir, String name) {

        return pattern.matcher(name).matches();

    }

}

 

 

 

  • 获取全部文件:

正则表达式为:"[\\s\\S]*"表示任意长度的字符:

    @Test

    public void DirFileter(){

        File path = new File(".");

        String[] list;

        list = path.list(new DirFilter("[\\s\\S]*"));

        //list = path.list(); //不用正则表达式的方式获取

        Arrays.sort(list,String.CASE_INSENSITIVE_ORDER);

        for(String dirItem : list){

            System.out.println(dirItem);

        }

    }

结果:

技术图片

  • 获取特定文件:正则表达式:"[a-z]*"

 

    @Test

    public void DirFileter2(){

        File path = new File(".");

        String[] list;

        list = path.list(new DirFilter("[a-z]*"));

        Arrays.sort(list,String.CASE_INSENSITIVE_ORDER);

        for(String dirItem : list){

            System.out.println(dirItem);

        }

    }

 

结果:获取所有名称小写英文字母的文件

技术图片

使用正则表达式过滤目录中文件名称,File和FilenameFilter的应用

标签:rri   bsp   array   alt   获取   new   mic   pre   return   

原文地址:https://www.cnblogs.com/daguozb/p/11872245.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!