【发布时间】:2010-08-12 16:32:38
【问题描述】:
我想用 Java 解压缩一个包含多个文件和目录的 7zip/lzma 存档。我尝试使用官方的 7zip SDK,但我失败了,因为我的编程技能对于这个主题并不那么先进。 但是,我喜欢一些使 Java 支持更容易的库,比如 LzmaOutputStream/LzmaInputStream - 但是我不知道如何使用这些“流”来解压缩多文件存档。我被卡住了。
【问题讨论】:
我想用 Java 解压缩一个包含多个文件和目录的 7zip/lzma 存档。我尝试使用官方的 7zip SDK,但我失败了,因为我的编程技能对于这个主题并不那么先进。 但是,我喜欢一些使 Java 支持更容易的库,比如 LzmaOutputStream/LzmaInputStream - 但是我不知道如何使用这些“流”来解压缩多文件存档。我被卡住了。
【问题讨论】:
在示例中,将 compressed 替换为 new File("PATH_TO_FILE")。示例代码将产生一个输出流,我想 LzmaOutputStream 或库具有将流转换为二进制或字符串的适当方法。
默认情况下,Lzma 只是一种压缩算法,而不是像 tar 或 zip 这样的文件归档器。 (注意:7-Zip程序是一个文件归档器,但你链接的库不支持文件遍历和解包。
我建议使用支持良好的压缩算法,例如 Zip 或 gz。如果您必须使用 lzma,您可以使用 tar 构建文件存档,然后使用 lzma 对其进行压缩。或者使用零压缩的 zip。
【讨论】: