これは、特定の URL オブジェクトが指している File オブジェクトを取得する最も簡単な方法です。
File file=new File(url.toURI());
さて、あなたの具体的な質問について:
- META-INF「ディレクトリ」内のすべてのリソースを見つける:
実際に、この URL を指す File オブジェクトを取得できます。
Enumeration<URL> en=getClass().getClassLoader().getResources("META-INF");
if (en.hasMoreElements()) {
URL metaInf=en.nextElement();
File fileMetaInf=new File(metaInf.toURI());
File[] files=fileMetaInf.listFiles();
//or
String[] filenames=fileMetaInf.list();
}
- bla.xml という名前のすべてのリソース (再帰的に)
この場合、いくつかのカスタム コードを実行する必要があります。ダミーの例を次に示します。
final List<File> foundFiles=new ArrayList<File>();
FileFilter customFilter=new FileFilter() {
@Override
public boolean accept(File pathname) {
if(pathname.isDirectory()) {
pathname.listFiles(this);
}
if(pathname.getName().endsWith("bla.xml")) {
foundFiles.add(pathname);
return true;
}
return false;
}
};
//rootFolder here represents a File Object pointing the root forlder of your search
rootFolder.listFiles(customFilter);
コードを実行すると、見つかったすべてのオカレンスがfoundFiles
リストに表示されます。