Java提取.cab文件

问题描述

我想从.cab文件提取文件并保存。在其他问题上找不到任何有用的信息,在GitHub上也没有文档。

目前,我可以使用CAB Parser遍历所有条目(2个文本文件),但是我找不到保存它们的好方法,并且希望获得一些提示

File inputFile = new File(inputPath);
File outputPath = new File(inputFile.getParentFile().getAbsolutePath());

final InputStream is = new FileInputStream(inputFile);
CabParser cabParser = new CabParser(is,inputPath);
Arrays.stream(cabParser.files).forEach(element -> {
    CabFileEntry cabFile = element;
});

非常感谢!

解决方法

这似乎适用于simple.cab

final InputStream is = new FileInputStream("/tmp/simple.cab");
CabParser cabParser = new CabParser(is,new File("/tmp/simple/"));
cabParser.extractStream();

但是,它以VC_RED.cab失败。

CabParser README.md

从.cab文件中提取通过LZX压缩算法压缩的文件

此库可能不支持所有可能的压缩算法。

一种选择是将cabextractRuntime.exec(...)一起运行。