我需要使用 spring ResourcePatternResolver 获取所有文件,无论其文件名如何。
我已经尝试过以下代码
private static final String BPMN_PATH = "process";
ResourcePatternResolver resourcePatternResolver = new PathMatchingResourcePatternResolver();
Resource[] resource = resourcePatternResolver.getResources("classpath:" + BPMN_PATH + "**/*.bpmn");
但这仅适用于文件列表位于类路径(项目目录)中的情况。
在我的场景中,文件位于系统目录中。为此,我尝试使用以下代码
private static final String BPMN_PATH = System.getProperty("user.home");
ResourcePatternResolver resourcePatternResolver = new PathMatchingResourcePatternResolver();
Resource[] resource = resourcePatternResolver.getResources("file:" + BPMN_PATH + File.separator +"process.bpmn");
但这仅适用于指定的文件(process.bpmn)。
有人可以帮忙吗?
请检查下面的链接;
/WEB-INF/*-context.xml
com/mycompany/**/applicationContext.xml
文件:C:/some/path/*-context.xml
类路径:com/mycompany/**/applicationContext.xml
好吧,我记得蚂蚁风格的通配符模式也应该适用于
file:
。
要加载文件夹中的所有文件(例如
/foo/bar/
),您可以使用:
resourcePatternResolver.getResources("file:/foo/bar/*");
请注意,仅限于该文件夹中包含的文件。它不会将该文件包含在其子文件夹中。
如果你想递归加载所有文件,甚至是每个子文件夹和子子文件夹等中的文件,你可以使用:
resourcePatternResolver.getResources("file:/foo/bar/**");