我目前正在尝试构建一个函数来查找嵌套zip中的文件。一般的问题我可以处理,我已经让我的代码正常工作了。我遇到的问题与压缩格式有关。
默认的zip文件不是问题,我打开我的zipinputstream,将它发送到我的搜索函数,检查每个条目是否是zip文件,如果是,我将inputstream包装在另一个zipinputstream中并递归。当我使用非标准的zip压缩时,问题就来了。
我想让这个函数更加健壮:为了能够检测zip条目的压缩格式,将其包装在正确的放气器中,然后将其包装在zipinputstream中,以便我可以递归。问题是我不知道如何解码压缩设置。我也不知道如何处理其他zip压缩格式。
任何关于如何使此功能更灵活的建议都会很有帮助。我打算将它集成到我自己的个人库中,以便将来从各个方向使用这个函数。
发布于 2012-06-17 21:21:35
据我所知,java.util.zip唯一支持的压缩算法是标准算法。但是您可以使用the ZipEntry getMehod() 检测压缩算法。
添加对其他压缩算法的支持可能需要您做一些工作-除非您可以找到支持不同算法的库。例如,有一个解码器,但类并没有扩展library for 7zip's LZMA format或ZipEntry --它们只是提供了一种替代方案。您需要解压缩嵌套的zip文件,然后使用其他工具将其解压缩。这可能并不像您希望的那样干净。
https://stackoverflow.com/questions/11071250
复制相似问题