解决使用ICsharpCode解压缩时候报错Size MisMatch4294967295;的错误

如果是一个文件夹生成的zip文件,解压缩时候不会报错。

如果是一个文件夹里面包含着两个子文件夹,而且每个子文件夹里面都有着文件。生成的zip文件在解压时候就出报这个错误。

具体的解决办法,通过网上搜索,有两种方法。

第一种:

在使用ZipEntry时候添加如下代码:

ZipEntry.CompressionMethod=CompressionMethod.Stored;

我试过了,不起作用。

第二种:

找到源码,注释如下代码:

    //if ((flags & 8) == 0 &&
                        //    (inf.TotalIn != csize && csize != 0xFFFFFFFF && csize != -1 || inf.TotalOut != size)) {
                        //    throw new ZipException("Size mismatch: " + csize + ";" + size + " <-> " + inf.TotalIn + ";" + inf.TotalOut);
                        //}

亲测可行。

具体操作:

1.官网下载源码  http://icsharpcode.github.io/SharpZipLib/

2.解压缩之后打开sln解决方案。

3.Ctrl+H搜索到代码注释

4.重新生成解决方案,在bin目录下找到DLL引用这个新的DLL就可以了。

原文地址:https://www.cnblogs.com/melodygkx/p/9714431.html