SevenZFile - Apache Commons Compress 1.15,解压缩

时间:2018-01-25 12:21:50

标签: java extract 7zip compression

在解压缩.7z文件时,空文件夹被忽略,我想在解压缩任何.7z文件后也考虑空文件夹。

我的代码如下

SevenZFile sevenZFile = new SevenZFile(new File(filename));
SevenZArchiveEntry entry;

while ((entry = sevenZFile.getNextEntry()) != null){
    if (entry.isDirectory()){
        continue;
    }

    File curfile = new File(DestinationPath,entry.getName());
    File parent = curfile.getParentFile();

    if (!parent.exists()) {
        parent.mkdirs();
    }

    FileOutputStream out = new FileOutputStream(curfile);
    byte[] content = new byte[(int) entry.getSize()];
    sevenZFile.read(content, 0, content.length);
    out.write(content);
    out.close();

1 个答案:

答案 0 :(得分:0)

您的代码似乎正常运作。

该文件夹可能从一开始就不在“yourfile.7zip”中。

这是7zip的常见问题,您必须更新7zip版本。

如果7Zip包含正确的参数,请使用:

 if (entry.isDirectory()){
                 new File(DestinationPath,entry.getName()).mkdir(); 
                continue;
            }

自:

  

文件输出流是用于将数据写入File或的输出流   到FileDescriptor。

这是完成任务的正确方法,因为本机库供应商没有文件夹实现。