Как загрузить все файлы папки в список ресурсов в Spring?
У меня есть папка и вы хотите загрузить все txt файлы в список с помощью Spring и подстановочных знаков:
В аннотации я мог бы сделать следующее:
@Value("classpath*:../../dir/*.txt")
private Resource[] files;
Но как я могу добиться того же, используя Spring программно?
Ответы
Ответ 1
Используйте ResourceLoader и ResourcePatternUtils:
class Foobar {
private ResourceLoader resourceLoader;
@Autowired
public Foobar(ResourceLoader resourceLoader) {
this.resourceLoader = resourceLoader;
}
Resource[] loadResources(String pattern) throws IOException {
return ResourcePatternUtils.getResourcePatternResolver(resourceLoader).getResources(pattern);
}
}
и используйте его как:
Resource[] resources = foobar.loadResources("classpath*:../../dir/*.txt");
Ответ 2
Если вы используете Spring
@Autowired
private ApplicationContext applicationContext;
public void loadResources() {
try {
Resource[] resources = applicationContext.getResources("file:C:/XYZ/*_vru_*");
} catch (IOException ex) {
ex.printStackTrace();
}
}