我的spring项目中的META-INF文件夹中有几个资源文件。我想使用通配符根据文件名过滤那些文件
例如:META-INF文件夹中的文件如下
a-config.xml
b-config.xml
c-config.xml
我想要的是使用通配符*-config.xml
过滤这些文件
我已经知道我可以很容易地使用弹簧ResourcePatternResolver
。
我尝试使用java.io.FileFilter
,但即使这样,我也必须传递RegEx来过滤文件名。
例如:
FileFilter customFilter = new FileFilter() {
@Override
public boolean accept(File pathname) {
if(pathname.getName().matches("(.*)config(.*)")) {
return true;
}
return false;
}
};
有没有其他方法可以在不使用任何第三方依赖(Spring、Google Guava等)和RegEX的情况下做到这一点?我想用简单的通配符来做过滤。非常感谢您的评论。
您想要的是一个不太有表现力的模式匹配,称为Glob。一种解决方案是使用String类方法(如startsWith
、endsWith
…)实现自己的globbing
。但我认为使用regex
是最好的通用解决方案。