【发布时间】:2014-04-22 07:12:20
【问题描述】:
我的 spring 项目的 META-INF 文件夹中有几个资源文件。我想使用通配符根据文件名过滤这些文件
例如: META-INF文件夹中的文件如下
a-config.xml
b-config.xml
c-config.xml
我想要的是使用通配符*-config.xml 过滤这些文件
我已经知道我可以轻松地为此使用 spring ResourcePatternResolver。
我尝试使用java.io.FileFilter,但即便如此,我也必须通过正则表达式来过滤文件名。
例如:
FileFilter customFilter = new FileFilter() {
@Override
public boolean accept(File pathname) {
if(pathname.getName().matches("(.*)config(.*)")) {
return true;
}
return false;
}
};
有没有其他方法可以在不使用任何第三方依赖项(Spring、Google Guava 等)和 RegEX 的情况下做到这一点?我想使用简单的通配符来进行过滤。非常感谢您的 cmets。
【问题讨论】:
-
你能指定你使用的java版本吗?
-
如果过滤不是太复杂,你可以使用 String.startsWith 或 String.endsWith。但是……正则表达式有什么问题?
-
@Seelenvirtuose 是的,我们可以使用 String.startsWith 或 String.endsWith 但我们正在寻找更好、更通用的解决方案。使用 RegEx 是可以的,但我需要知道在使用 RegEx 之前没有任何其他方法可以做到这一点。谢谢
-
好的,我不知道任何其他解决方案。正则表达式是通用解决方案。
标签: java file filter resources wildcard