JavaFileUtils。资源目录上的listFiles()
在我的项目中,我有一个resources
目录,里面有一个my_directory
my_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
directory
文件路径为:
/home/hsz/.../lib/my_project.jar!/my_directory
如何在资源目录中使用Apache的FileUtils
# 1 楼答案
当文件/目录捆绑在一个文件夹中时。jar文件,它们不再被视为
File
对象。它们可以通过获取它们的输入流来读取我建议您将包含文件的文件夹保存在文件系统中,并执行您想要执行的操作。在进行这些操作之前,您是否希望将它们捆绑到一个jar中
根据下面问题中的答案,在Java 7中,您可以从JAR(zip)文件创建一个文件系统,然后使用NIO的目录遍历和过滤机制对其进行搜索。这将使编写处理JAR和“分解”目录的代码变得更容易。你可以试试看
# 2 楼答案