JAVA ZipFile entries()方法没有看到目录

时间:2010-11-18 14:16:50

标签: java zipfile

我正在处理数字文档和数字签名,我偶然发现了一个问题。

输入:documentX.adoc - 包含文件和文件夹的zip文件。

我需要获取输入文件中的所有内容 - 目录和文件列表。

我该怎么做:

ZipFile adocFile = new ZipFile(documentXFileName);
ArrayList <String> adocFiles = new ArrayList<String>();
Enumeration <? extends ZipEntry> entries;
entries = adocFile.entries();
for (entries = adocFile.entries(); entries.hasMoreElements();)
{
    adocFiles.add(entries.nextElement().getName());
}

我试图创建ArrayList&lt; ZipEntry&gt;并添加ZipEntries而不是名称 - 仍然没有。也许有其他方式?奇怪的是,ZipEntry有一个.isDirectory()方法......

感谢您的帮助, 马丁

1 个答案:

答案 0 :(得分:9)

来自documentation

  

目录条目定义为名称以'/'。

结尾的目录条目

没有必要将目录存储在ZIP文件中 - 它们是可选条目。可以使用路径foo/bar.txt存储字节序列,而不使用名为foo的条目。 Zip工具可能会提供存档中存在此类事物的错觉,即使它们不存在。