Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/357.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 类路径上的资源是否有与Files.newDirectoryStream等效的文件_Java_Classpath_Java 7_Nio - Fatal编程技术网

Java 类路径上的资源是否有与Files.newDirectoryStream等效的文件

Java 类路径上的资源是否有与Files.newDirectoryStream等效的文件,java,classpath,java-7,nio,Java,Classpath,Java 7,Nio,我有一个项目,它使用以下代码获取目录中的文件筛选列表: Path directoryPath = FileSystems.getDefault().getPath("src/main/resources/com/foo/bar"); DirectoryStream<Path> ds = Files.newDirectoryStream(directoryPath, filter); 路径目录路径= getPath(“src/main/resources/com/

我有一个项目,它使用以下代码获取目录中的文件筛选列表:

Path directoryPath = 
    FileSystems.getDefault().getPath("src/main/resources/com/foo/bar");
DirectoryStream<Path> ds = 
    Files.newDirectoryStream(directoryPath, filter);
路径目录路径= getPath(“src/main/resources/com/foo/bar”); 目录流ds= newDirectoryStream(目录路径,过滤器);
当我在eclipse中运行项目时,这非常有效,但是当我们打包jar时,它当然无法使用此路径找到资源。如果我提前知道这些资源的名称,我可以手动引用它们,但我在尝试轻松筛选它们,甚至获取它们的列表时遇到了麻烦。是否有一种干净的方法可以将这些文件引用为资源而不是特定的目录位置?

查看Class.getResource或Class.getResourceAsStream,看看这是否适合您。

查看Class.getResource或Class.getResourceAsStream,看看这是否适合您。

似乎我没有阅读您的问得够透彻了:-让我们看看这个或者第二个答案,如果你愿意达到这个程度,谢谢,@user1181247。我能够使用你发布的第一个链接中的信息来提出解决方案。似乎我没有充分阅读你的问题:-让我们看看这个或第二个答案,如果你愿意达到这个程度,谢谢,@user1181247。我能够使用您发布的第一个链接中的信息来提出解决方案。
“src/main/resources/com/foo/bar”
已经是一个问题。运行时,
src
目录将不在那里。您应该使用
Class.getResource()
和friends,而不是文件和路径。我通常会将所有这些作为资源引用,但到目前为止,我已经能够找到任何方法在运行时过滤资源,就像文件.newDirectoryStream(path,globFilter)那样。例如,如果要加载命令行arg指定的目录中的所有资源。
“src/main/resources/com/foo/bar”
已经是一个问题。运行时,
src
目录将不在那里。您应该使用
Class.getResource()
和friends,而不是文件和路径。我通常会将所有这些作为资源引用,但到目前为止,我已经能够找到任何方法在运行时过滤资源,就像文件.newDirectoryStream(path,globFilter)那样。例如,如果要加载命令行arg指定的目录中的所有资源。