问题描述
我想从.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压缩算法压缩的文件
此库可能不支持所有可能的压缩算法。
一种选择是将cabextract与Runtime.exec(...)一起运行。