Java 从类路径获取目录(现在获取文件)
我想在目录中搜索文件。因此,我想获取文件对象中的目录,但我获取的是文件而不是目录。这就是我正在做的,它打印的是假的,但我希望它是真的Java 从类路径获取目录(现在获取文件),java,Java,我想在目录中搜索文件。因此,我想获取文件对象中的目录,但我获取的是文件而不是目录。这就是我正在做的,它打印的是假的,但我希望它是真的 URL url = getClass().getResource("/strategy/viewconfigurations/"); File folder = new File(url.toString()); System.out.println(folder.isDirectory()); 如何以这种方式加载目录?从URL对象获取的路径或字符串似乎会导致问
URL url = getClass().getResource("/strategy/viewconfigurations/");
File folder = new File(url.toString());
System.out.println(folder.isDirectory());
如何以这种方式加载目录?从
URL
对象获取的路径或字符串似乎会导致问题。您传递了将从
url.toString()
获得的文件路径
你需要在底线下换车
File folder = new File(url.toString());
用这条线
File folder = new File(url.getPath());
您需要从URL.getPath()
函数获取文件夹的路径
我希望这就是您所需要的。如果您需要从类路径文件夹中查找目录的Yagnesh Agola文章中的Java 7+替代方案,您还可以使用较新的
Java.nio.file.Path
类
以下是一个例子:
URL outputXml = Thread.currentThread().getContextClassLoader().getResource("outputXml");
if(outputXml == null) {
throw new RuntimeException("Cannot find path in classpath");
}
Path path = Paths.get(outputXml.toURI());
根据应用程序的绑定方式,对此类资源的引用可能会提供对压缩条目的引用。
System.out.println(url)
显示什么协议?文件:/C:/Users/../Mission%20Control/target/classes/strategy/viewconfigurations/,似乎指向IDE项目中的目录。您希望在这里实现什么功能?您是否希望从捆绑在应用程序中的文件夹中读取文件?如果这是真的,那么这不是一个好的策略;一旦您将应用程序打包为一个jar,程序员所说的就变成了事实;它将不再是磁盘上的一个目录,而是zip文件中的一个路径条目。它现在确实在我的项目中,但它需要放在jar之外。我只需要告诉Maven把这个资源文件夹放在jar之外。我现在从Eclipse运行它,文件位于目标文件夹中。它没有压缩,我可以从我的文件浏览器轻松打开它。我还不能发布答案,但我发现了问题:文件夹名称中的空格。谢谢!删除文件夹名中的空格并传递路径(而不是toString)修复了它。