Java jar 目录中的 listFiles

Java listFiles in directory in jar

有没有办法在已经打包成jar的目录上使用listFiles()

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

在这个 Java 程序中,我有一个 class 需要使用 listFiles() 来获取这些文件的列表。我会得到类似 jar:file:/home/soupkitchen.jar/!text 的东西。我希望那是一个目录。有什么方法可以将其视为包含文件的 java.io.File 目录?现在它似乎只被列为既不是文件也不是目录。

没有。 java.io.File 只能用于列出真实目录。

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

总的来说,你有三个选择:

  1. 打开 .jar 作为 Zip File System and use Files.newDirectoryStream or Files.list
  2. 遍历 .jar 文件中的所有条目,查找匹配的名称。
  3. 在您的 .jar 中放置一个文本文件,其中包含目录中所有条目的名称,这样您就不必尝试列出它们。