首页 > 基础资料 博客日记
FilenameFilter使用正则表达式匹配过滤文件名
2023-05-12 15:10:33基础资料围观337次
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()方法来获取所有符合条件的文件列表。
标签: