jar 目录中的 Java listFiles

标签 java io

有什么方法可以在已打包到 jar 中的目录上使用 listFiles() 吗?

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

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

最佳答案

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

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

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

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

关于jar 目录中的 Java listFiles,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30745744/

相关文章:

java - 在对象B中,如何访问创建了对象B的对象A?

java - RSS Feed - 解析结束标记时发生异常

java - 在 Java 中解析 GML 时出现错误字符

c - 使用 open() 和 close() 重定向输入

即使下一个标记似乎适合数据类型,Java 扫描器也会抛出 InputMismatchException

java:进行列表列表深度复制的最佳方法

java - 拖动JToolBar时如何保持Metal L&F

c# - 使用 C# 获取解决方案文件的父文件夹的路径

c - 将字符串转换为代码?

c++ - 从文件中读入结构数组