使用FilenameFilter来得到指定文件后缀的文件目录集合

来源:互联网 发布:java基础入门答案 编辑:程序博客网 时间:2024/05/29 18:03

package com.hm.test18.javaIoFileNameFileter;

import java.io.File;
import java.io.FilenameFilter;
import java.util.Arrays;

public class DirList {
public static void main(String[] args) {
File path = new File(“d:/”); //指定目录
String[] list = path.list(new DirFilter(“.java”)); //得到指定目录下 所有.java 后缀的文件
Arrays.sort(list, String.CASE_INSENSITIVE_ORDER);//对过滤得到的目录集合按字母进行排序
for (String s : list) {
System.out.println(s); //循环打印得到的文件目录集合
}
}
}

class DirFilter implements FilenameFilter {
private String pattern;
public DirFilter(String regex) {
this.pattern = regex;
}
@Override
public boolean accept(File dir, String name) {
return name.endsWith(pattern); //endsWith 通过指定目录得到的文件名 是否以指定后缀结束
}
}
创建 DirFilter 这个类的目的是在于把accept()方法提供给list()(上边那个File对象的list()方法)使用,使list()可以回调accept(),进而决定哪些文件包含在列表中。
accept()方法必须接受一个代表某个特定文件所在目录的File对象,以及包含了那个文件名的一个String。File对象的list()方法会为此目录对象下的每个文件名调用accept(),来判断该文件是否包含在内;

阅读全文
0 0