首页 > 基础资料 博客日记
FilenameFilter使用正则表达式匹配过滤文件名
2023-05-12 15:10:33基础资料围观689次

FilenameFilter接口提供了对文件名字符串的过滤,可以通过正则表达式对文件进行匹配。在实现FilenameFilter时,可以将正则表达式作为参数传入过滤方法中,并在方法中使用Matcher类进行匹配。
下面是一个示例代码:
import java.io.*;
public class RegexFilter implements FilenameFilter {
private final String pattern;
public RegexFilter(String pattern) {
this.pattern = pattern;
}
@Override
public boolean accept(File dir, String name) {
File f = new File(dir.getPath() + File.separator + name);
return f.isFile() && name.matches(pattern);
}
public static void main(String[] args) {
File dir = new File(".");
String pattern = ".*\\.txt"; // 匹配所有以 .txt 结尾的文件
File[] files = dir.listFiles(new RegexFilter(pattern));
if (files != null) {
for (File file : files) {
System.out.println(file.getName());
}
}
}
}在上面的示例中,RegexFilter类用于过滤符合指定正则表达式的文件。accept方法的实现中使用了Matcher.matches()方法来进行文件名匹配,匹配成功返回true,否则返回false。在main方法中,将目录和正则表达式传入listFiles()方法来获取所有符合条件的文件列表。
标签:

