Reputation: 86847
I have a folder and want to load all txt files to a list using Spring and wildcards:
By annotation I could do the following:
@Value("classpath*:../../dir/*.txt")
private Resource[] files;
But how can I achieve the same using spring programmatically?
Upvotes: 27
Views: 35805
Reputation: 12932
Use ResourceLoader and ResourcePatternUtils:
class Foobar {
private final ResourceLoader resourceLoader;
public Foobar(ResourceLoader resourceLoader) {
this.resourceLoader = resourceLoader;
}
Resource[] loadResources(String pattern) throws IOException {
return ResourcePatternUtils.getResourcePatternResolver(resourceLoader).getResources(pattern);
}
}
and use it like:
Resource[] resources = foobar.loadResources("classpath*:../../dir/*.txt");
Upvotes: 50
Reputation: 436
applicationContext.getResources("classpath:/*.extension"); works for me
Upvotes: 0
Reputation: 1122
If you are using Spring
@Autowired
private ApplicationContext applicationContext;
public void loadResources() {
try {
Resource[] resources = applicationContext.getResources("file:C:/XYZ/*_vru_*");
} catch (IOException ex) {
ex.printStackTrace();
}
}
Upvotes: 10