我在处理数字文档和数字签名时偶然发现了一个问题。
输入: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 < ZipEntry > 并添加 ZipEntries 而不是名称 - 仍然没有。也许还有其他方法?奇怪的是,ZipEntry 有一个 .isDirectory() 方法...
感谢帮助, 马丁
最佳答案
来自documentation :
A directory entry is defined to be one whose name ends with a '/'.
不必将目录存储在 ZIP 文件中 - 它们是可选条目。可以使用路径 foo/bar.txt
存储字节序列,而没有名为 foo
的条目。 Zip 工具可能会让人产生这样的错觉,即这些东西存在于存档中,即使它们不存在也是如此。
关于JAVA ZipFile entries() 方法看不到目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4215685/