gpt4 book ai didi

java - 资源目录上的 FileUtils.listFiles()

转载 作者:行者123 更新时间:2023-11-29 08:47:22 25 4
gpt4 key购买 nike

在我的项目中,我有一个 resources 目录,里面有一个 my_directorymy_directory 包含文本文件。

我想循环这个目录:

URL resource = Resources.class.getResource("/my_directory");
File directory = new File(resource.getPath());
Collection<File> files = FileUtils.listFiles(directory, new String[]{"txt"}, true);

files 集合包含所有 .txt 文件。

如果我在调试器中运行这个项目,效果会很好。但是,如果我将项目构建为 jar 文件,则会出现错误:

java.lang.IllegalArgumentException: Parameter 'directory' is not a directory

目录文件路径为:

/home/hsz/.../lib/my_project.jar!/my_directory

如何在资源目录上使用 Apache 的 FileUtils

最佳答案

当文件/目录捆绑在 .jar 文件中时,它们不再被视为 File 对象。可以通过获取它们的输入流来读取它们,例如

InputStream input = getClass().getResourceAsStream("my_directory/file");

我建议您将包含文件的文件夹保留在文件系统中,并进行您想要执行的操作。有什么理由,你想在这些操作之前将它们捆绑到一个 jar 里。

根据以下问题的答案,在 Java 7 中,您可以从 JAR (zip) 文件创建文件系统,然后使用 NIO 的目录遍历和过滤机制来搜索它。这将使编写处理 JAR 和“展开的”目录的代码变得更容易。你可以试试看!

关于java - 资源目录上的 FileUtils.listFiles(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24434586/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com