Java获取包中的所有文件
我尝试使用以下代码获取Java包中的所有文件:Java获取包中的所有文件,java,Java,我尝试使用以下代码获取Java包中的所有文件: public static ArrayList<String> getThemes() { ArrayList<String> themes = new ArrayList<>(); File folder = new File(Main.class.getResource("fxml/").toString()); for (File file : folder.li
public static ArrayList<String> getThemes() {
ArrayList<String> themes = new ArrayList<>();
File folder = new File(Main.class.getResource("fxml/").toString());
for (File file : folder.listFiles()) {
if (file.getName().endsWith(".css"))
themes.add(file.getName().replaceFirst("[.][^.]+$", ""));
}
return themes;
}
publicstaticarraylistgetthemes(){
ArrayList主题=新建ArrayList();
File folder=新文件(Main.class.getResource(“fxml/”).toString());
对于(文件:folder.listFiles()){
if(file.getName().endsWith(“.css”))
themes.add(file.getName().replaceFirst(“[.][^.]+$”,”);
}
返回主题;
}
这段代码应该给我一个名为fxml
(Full:dev.thetechnokid.rw.fxml
)的包中所有css文件的数组列表
我使用了许多其他不同的方法,包括使用当前目录和完整的文件路径,但它仍然提供了一个NullPointerException
。堆栈跟踪没有提供足够的信息,只有FXMLLoadException
这段代码有什么问题?我很确定Class.getResource()只检测文件,而不是文件夹 我很确定Class.getResource()只检测文件,而不是文件夹 尝试使用
getFile
而不是toString
File folder=新文件(Main.class.getResource(“fxml/”).getFile())代码>尝试使用getFile
而不是toString
File folder=新文件(Main.class.getResource(“fxml/”).getFile())代码>我建议:
URL packageURL;
packageURL = classLoader.getResource("fxml/");
URI uri = new URI(packageURL.toString());
File folder = new File(uri.getPath());
我建议:
URL packageURL;
packageURL = classLoader.getResource("fxml/");
URI uri = new URI(packageURL.toString());
File folder = new File(uri.getPath());
Main.class的哪个包?Main.class的哪个包?class.getResource()
可以检测文件夹Path.get(“fxml”)
我认为它不起作用,因为它依赖于DefaultFileSystem@Jerry06第一部分你是对的,但我看不出依赖默认文件系统有什么不对谢谢!第一个由于某种原因给了我一个错误,但第二个运行得很好。Class.getResource()
可以检测文件夹,Path.get(“fxml”)
我认为它不工作,因为它依赖于DefaultFileSystem@Jerry06第一部分你是对的,但是我看不出依赖默认文件系统有什么问题谢谢!由于某种原因,第一个给了我一个错误,但是第二个工作得很好。
URL packageURL;
packageURL = classLoader.getResource("fxml/");
URI uri = new URI(packageURL.toString());
File folder = new File(uri.getPath());