在 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 存档 [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

如何在 HDFS 中解压缩多个 zip 文件

如果使用 jar,则从 jar 中解压缩文件,然后将提取的文件复制到目录

在 Java 中解压缩巨大的 gz 文件和性能

如何从多个 tar 文件中解压缩特定文件并压缩它们?

AWS Lambda (Python) 无法在 S3 中解压缩和存储文件

xml 在java中解压缩一个zip文件。