这是获取某个 URL 对象指向的 File 对象的最简单方法:
File file=new File(url.toURI());
现在,对于您的具体问题:
您确实可以获得指向此 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();
}
在这种情况下,您必须执行一些自定义代码。这是一个虚拟示例:
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
运行代码时,您将在列表中获得所有找到的出现。