一年前,我为我的毕业作品编写了 JavaFX 2.0 应用程序。但一年后,我遇到了以前有效的代码问题。
所以,在代码中我想获取文件夹并列出它的文件:
File dir = new File(getClass().getResource("media/images/backgrounds/").getPath());
File[] files = dir.listFiles();
for (File file : files) {
list.add(file.toURI().toString());
}
我在“for (File file : files) {”行上收到 java.lang.NullPointerException
System.out.print(getClass().getResource("media/images/backgrounds/").getPath());
返回 文件:/D:/JavafxApp1/JavafxApp/dist/run2054723721/JavafxApp.jar!/javafxapp/media/images/backgrounds/
我不想创建另一种方法来从 JAR 文件中的流中读取文件。这种获取文件的方法一年前 100% 有效,但为什么现在不起作用?谢谢!
最佳答案
它不会工作,因为你的文件夹在一个 jar 里。我想一年前他们还不是。我认为对于目录位于 jar 之外的情况,您不需要单独的代码:
我找到了this example该图展示了如何使用 getResourceAsStream 列出目录中的文件。然后,您可以依次通过 getResourceAsStream 访问这些资源。你永远不会知道你是在 jar 里面还是外面:-)
关于java - 无法使用 .getResource().getPath() 打开文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14294829/