如何仅使用JAVA API过滤基于通配符的资源文件



我的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类方法(如startsWithendsWith…)实现自己的globbing。但我认为使用regex是最好的通用解决方案。

相关内容

  • 没有找到相关文章

最新更新