![](/img/trans.png)
[英]extracting contents of ZipFile entries when read from byte[] (Java)
[英]Recursive read ZipFile without extracting (Java)
有一个小问题。 我有一个结构未知的ZipFile。 我必须在控制台上打印所有文件条目。 主要问题是该主ZipFile可能包含“子” ZipFile,而这些子ZipFile可能包含自己的ZipFile,依此类推。 我只需要查看所有文件条目,但是现在将它们解压缩即可。 我尝试使用ZipFile和ZipInputStream,但未成功。 有人可以帮我吗?
public void showTree(ZipFile file) {
try {
ZipEntry entry;
Enumeration<? extends ZipEntry> entries= file.entries();
while ((entry = entries.nextElement()) != null) {
if (entry.getName().matches(".+(zip)$")) {
ZipFile z = new ZipFile(entry.getName()); //DOES NOT WORK!!!!!!
showTree(z);
}
System.out.println(entry.getName());
}
} catch (Exception ex) {
ex.printStackTrace();
}
}
这是我的代码,我被束缚从entry.getName()创建ZipFile(显然不能正常工作),但是没有成功。 问题是-如何从内部ZipFile获取条目?
您需要为进入的每个层检查“有孩子”,如果为true,则需要更深入地学习。 一旦不再有孩子,您就会阅读内容并寻找同级。 如果有兄弟姐妹-那么:走进他们。 否则,您的递归方法将在那里结束,并跳到递归方法的上层调用。
zipFile.recursiveMethod()或recursiveMethod(zipFile)会启动逻辑。 喜欢:
recursiveMethod(params)
{
if(hasChild)
{
child.recursiveMethod();
}
// in deepest childObject
readContent();
if(hasSibling)
{
sibling.recursiveMethod();
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.