Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/309.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
jar中目录中的Java listFiles_Java_Io - Fatal编程技术网

jar中目录中的Java listFiles

jar中目录中的Java listFiles,java,io,Java,Io,有没有办法在打包到jar中的目录上使用listFiles() 假设我的资源目录中有一个包含一些文本文件的目录:text/text1.txt和text/text2.txt 在这个Java程序中,我有一个类需要使用listFiles()来获取这些文件的列表。我将得到类似于jar:file:/home/soupkitchen.jar/!文本。我希望那是一个目录。有没有办法将其视为包含文件的java.io.File目录?现在它似乎既不是文件也不是目录。否。java.io.file只能用于列出实际目录 但

有没有办法在打包到jar中的目录上使用
listFiles()

假设我的资源目录中有一个包含一些文本文件的目录:
text/text1.txt
text/text2.txt


在这个Java程序中,我有一个类需要使用
listFiles()
来获取这些文件的列表。我将得到类似于
jar:file:/home/soupkitchen.jar/!文本
。我希望那是一个目录。有没有办法将其视为包含文件的
java.io.File
目录?现在它似乎既不是文件也不是目录。

否。java.io.file只能用于列出实际目录

但是,您可以将其视为java.nio.file.Path

总的来说,您有三种选择:

  • 将.jar作为一个文件打开,然后使用或
  • 遍历.jar文件中的所有条目,查找匹配的名称
  • 在.jar中放置一个文本文件,其中包含目录中所有条目的名称,这样就不必尝试列出它们

  • 解决方案2的一行代码是:
    new-JarFile(新文件(ThisClassName.class.getProtectionDomain().getCodeSource().getLocation().toURI()))。entries()
    @Torsten不是一个好主意,因为,
    文件:
    URL中不保证存在.jar文件。