web-dev-qa-db-ja.com

Springのリソースのリストにフォルダのすべてのファイルをロードするにはどうすればよいですか?

フォルダがあり、Springとワイルドカードを使用してすべてのtxtファイルをリストにロードしたい:

注釈により、私は次のことができます:

@Value("classpath*:../../dir/*.txt")
private Resource[] files;

しかし、プログラムで春を使用して同じことをどのように達成できますか?

13
membersound

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");
25

Springを使用している場合

@Autowired
private ApplicationContext applicationContext;

public void loadResources() {
    try {
        Resource[] resources = applicationContext.getResources("file:C:/XYZ/*_vru_*");
    } catch (IOException ex) {
        ex.printStackTrace();
    }
}
6
Baji Shaik