在 Java 中解压缩包含多个文件和目录的 7zip 存档 [关闭]
Posted
技术标签:
【中文标题】在 Java 中解压缩包含多个文件和目录的 7zip 存档 [关闭]【英文标题】:Decompress a 7zip archive with multiple files & directories in Java [closed] 【发布时间】:2010-08-12 16:32:38 【问题描述】:我想用 Java 解压缩一个包含多个文件和目录的 7zip/lzma 存档。我尝试使用官方的 7zip SDK,但我失败了,因为我的编程技能对于这个主题并不那么先进。 但是,我喜欢一些使 Java 支持更容易的库,比如 LzmaOutputStream/LzmaInputStream - 但是我不知道如何使用这些“流”来解压缩多文件存档。我被卡住了。
【问题讨论】:
看看***.com/questions/3435751/… 【参考方案1】:在示例中,将 compressed
替换为 new File("PATH_TO_FILE")。示例代码将产生一个输出流,我想 LzmaOutputStream 或库具有将流转换为二进制或字符串的适当方法。
默认情况下,Lzma 只是一种压缩算法,而不是像 tar 或 zip 这样的文件归档器。 (注意:7-Zip程序是一个文件归档器,但你链接的库不支持文件遍历和解包。
我建议使用支持良好的压缩算法,例如 Zip 或 gz。如果您必须使用 lzma,您可以使用 tar 构建文件存档,然后使用 lzma 对其进行压缩。或者使用零压缩的 zip。
这是java TAR library。
【讨论】:
感谢您提供的信息。无法切换到另一个库,因为提供了 7zip 文件并且无法更改格式(可悲但真实)。我也找不到 7zip 存档的任何规范,这很奇怪——因为已经有一些应用程序支持 7zip,但不是开源的。以上是关于在 Java 中解压缩包含多个文件和目录的 7zip 存档 [关闭]的主要内容,如果未能解决你的问题,请参考以下文章
如果使用 jar,则从 jar 中解压缩文件,然后将提取的文件复制到目录