编程语言
首页 > 编程语言> > c# – Ionic.Zip分裂拉链无法提取

c# – Ionic.Zip分裂拉链无法提取

作者:互联网

我用Ionic.Zip压缩一个目录并将其拆分成几个文件.结果是一堆名为myfile.zip,myfile.z01,myfile.z02,…的文件.

当我使用Windows资源管理器查看zip-File时,我可以看到文件列表.

但是当我尝试使用Windows资源管理器提取存档时,我收到一条消息相同的卷不能同时用作源和目标

当我用7zip打开zipfile时,我得到消息文件myfile.zip无法作为存档打开

创建和提取单个zip-archive工作正常.

这是代码,我使用Ionic.Zip创建zip存档

using (ZipFile zip = new ZipFile())
{
    //zip.AlternateEncoding = System.Text.Encoding.UTF8;
    zip.AddDirectory(sourceDirectory);
    //zip.MaxOutputSegmentSize = 0; //Single file
    zip.MaxOutputSegmentSize = 1024 * 1024 * 8; //Splitt up into 8 MB pieces
    //zip.Password = zipPassword;
    zip.CompressionLevel = Ionic.Zlib.CompressionLevel.None;
    zip.CompressionMethod = CompressionMethod.None;

    zip.Save(zipFilePath);    

    segmentsCreated = zip.NumberOfSegmentsForMostRecentSave;
}

return segmentsCreated;

顺便说一句,我尝试了几种CompressionLevels,CompressionMethods的组合,有和没有密码,……没有变化:(

更新1:

开箱工程:

using (ZipFile zip = ZipFile.Read(zipFilePath))
{
     zip.Password = zipPassword;
     zip.ExtractAll(targetDirectory, ExtractExistingFileAction.OverwriteSilently);
}

解决方法:

这是一个已知的问题.
您无法使用Windows资源管理器打开部分zip文件.
使用WinRar.

标签:c,zip,7zip
来源: https://codeday.me/bug/20190711/1430301.html