我在SO上找到了很多答案但不知何故无法将其与我的代码集成。
我有一个jar,在打开一个JarConnection后找到它的路径看起来像:
/Users/xyz/WTMS/target/WTMS.jar
我有一个目录,其名称为 vega-config-templates ,其下面包含未知文件名,如:
anonymous1.txt
anonymous2.txt
anonymous3.txt
.
.
.
代码:
URL url = getClass().getClassLoader().getResource(directoryPath);
List<String> arrayList = new ArrayList<>();
final Enumeration<JarEntry> entries = jarFile.entries();
while (entries.hasMoreElements()) {
final JarEntry entry = entries.nextElement();
final String entryName = entry.getName();
System.out.println("Entry name "+entryName);
if (entryName.startsWith("/vega-config-templates")) {
arrayList.add(entryName.replace('/', File.separatorChar));
}
}
}
使用此代码,我可以访问顶级目录作为名称为#34; vega-config-templates&#34;的Jar条目。但在此我想做的事情如下:
FileUtils.listFiles(directory, null, true)
然后我希望随时随地获取这些Collection<Files>
文件的内容,而我无法使用JarEntry ,因为它没有深入了解顶级目录。
我也不能在这些URI上应用传统的文件遍历来打开这个目录,然后将其作为一个简单的File directory = new File(jarUri+"/vega-config-templates")
进行迭代;
如何动态迭代文件并获取文件对象,以便我可以在jar中的已知目录下提取每个文件对象的内容。