我正在使用通配符从文件系统加载资源:
Resource[] resources = new PathMatchingResourcePatternResolver()
.getResources("/my/path/*.zip");
问题:如何只加载文件名中没有下划线.zip
的{{1}}个文件?
是否可以使用通配符模式?
答案 0 :(得分:1)
PathMatchingResourcePatternResolver默认使用AntPathMatcher, 哪些(幸运的是)可以执行基于RegExp的通配符,因此您可以像这样使用它:
Resource[] resources = new PathMatchingResourcePatternResolver()
.getResources("/my/path/{filename:[^_]*.zip}");
[^_]
- 是一个否定的字符范围,它将匹配除_
之外的任何字符,因此[^_]*.zip
将匹配任何以.zip结尾的文件名,而不是他们的名字中有_
。