如何获取类路径中目录中的所有文件

Boh*_*ian 3 classpath embedded-resource spring-boot

有没有办法ResourceLoader在jar中的目录中获取"子资源"列表?

例如,给定来源

src/main/resources/mydir/myfile1.txt
src/main/resources/mydir/myfile2.txt
Run Code Online (Sandbox Code Playgroud)

和使用

@Autowired
private ResourceLoader resourceLoader;
Run Code Online (Sandbox Code Playgroud)

我可以到达目录

Resource dir = resourceLoader.getResource("classpath:mydir")
dir.exists() // true
Run Code Online (Sandbox Code Playgroud)

但不是目录中的文件.如果我能得到该文件,我可以打电话dir.getFile().listFiles(),但是

dir.getFile() // explodes with FileNotFoundException
Run Code Online (Sandbox Code Playgroud)

但我无法找到获得"孩子"资源的方法.

And*_*son 9

您可以使用a ResourcePatternResolver来获取与特定模式匹配的所有资源.例如:

Resource[] resources = resourcePatternResolver.getResources("/mydir/*.txt")
Run Code Online (Sandbox Code Playgroud)

你可以ResourcePatternResolver用同样的方式注射ResourceLoader.

  • 好的,但我不知道我会在那里找到什么。也许`"/mydir/*"` 与您的代码。我最终让它与`PathMatchingResourcePatternResolver`一起工作 (2认同)