Как прочитать все файлы по указанному пути, используя Spring ResourcePatternResolver - PullRequest
0 голосов
/ 07 июня 2019

Мне нужно получить все файлы независимо от их имени, используя Spring ResourcePatternResolver.

Я уже пробовал со следующим кодом

private static final String BPMN_PATH = "process";
ResourcePatternResolver resourcePatternResolver = new PathMatchingResourcePatternResolver();
Resource[] resource = resourcePatternResolver.getResources("classpath:" + BPMN_PATH + "**/*.bpmn");

Но это только в том случае, если списки файлов находятся в classpath (каталоге проекта).

В моем случае файлы находятся в системном каталоге. Для этого я попытался с помощью следующего кода

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).

Может кто-нибудь помочь с этим?

1 Ответ

1 голос
/ 07 июня 2019

Ну, я помню, шаблон подстановки в стиле муравья также должен работать для file:.

Чтобы загрузить все файлы в папке (например, /foo/bar/), вы можете использовать:

resourcePatternResolver.getResources("file:/foo/bar/*);

Обратите внимание, что он ограничен только файлами, включенными в эту папку. Он не будет включать файл в свои подпапки.

Если вы хотите рекурсивно загрузить все файлы, даже файлы в каждой подпапке, подпапке и т. Д., Вы можете использовать:

 resourcePatternResolver.getResources("file:/foo/bar/**);
...