Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jsf-2/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 从类路径获取目录(现在获取文件)_Java - Fatal编程技术网

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)修复了它。