Решение пока что: оно работает, но не удовлетворяет меня из-за абсолютного пути.
org.apache.commons.io.FileUtils должен быть включен.
public Collection<File> queryResourceFileCollectionByDirectoryMember(Class clazz, String resourcePathToMember, String[] extensions) {
logger.info("------- FileTools : queryResourceFileCollectionByDirectoryMember");
try {
//String[] extensions = {"xml"};
URL resourceURL = clazz.getResource(resourcePathToMember);//"/fields/testOITM.xml" <- one XML file in the /src/main/resources/fields/ folder to get the absolutepath which after deployment is WEB-INF/classes/fields
String resourcePath = resourceURL.getPath();
//Remove the leading slash
String resourcePathWithoutFirstChar = resourcePath.substring(1);
logger.log(Level.INFO, "------- FileTools : queryResourceFileCollectionByDirectoryMember: resourcePath :{0} :", resourcePathWithoutFirstChar);
File resourceFileToGetDirectory = new File(resourcePathWithoutFirstChar);
String resourceDirectoryPath = resourceFileToGetDirectory.getParent() + File.separator; //"c:/Users/xuser/Documents/NetBeansProjects/BOneBApp/target/classes/"
File resourceDirectory = new File(resourceDirectoryPath);
Collection<File> files = FileUtils.listFiles(resourceDirectory, extensions, true);
return files;
} catch (Exception e) {
logger.log(Level.SEVERE, "******* FileTools : queryResourceFileCollectionByDirectoryMember : {0}", e.getMessage());
return null;
}
}
Клац может быть любого класса веб-приложения.
С уважением, Хольгер