有什么方法可以在已打包到 jar 中的目录上使用 listFiles()
吗?
假设我的资源目录中有一个包含一些文本文件的目录:texts/text1.txt
和 texts/text2.txt
。
在这个 Java 程序中,我有一个类需要使用 listFiles()
来获取这些文件的列表。我会得到类似于 jar:file:/home/soupkitchen.jar/!text
的内容。我希望那是一个目录。有什么方法可以将其视为包含文件的 java.io.File
目录?现在它似乎只被列为既不是文件也不是目录。
最佳答案
没有。 java.io.File 只能用于列出真实的目录。
但是,您可以将其视为 java.nio.file.Path。
总的来说,您有三个选择:
- 打开 .jar 作为 Zip File System并使用 Files.newDirectoryStream或 Files.list .
- 遍历 .jar 文件中的所有条目,查找匹配的名称。
- 在您的 .jar 中放置一个文本文件,其中包含目录中所有条目的名称,这样您就不必尝试列出它们。
关于jar 目录中的 Java listFiles,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30745744/