Как загрузить все файлы папки в список ресурсов в 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();
    }
}