解决使用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就可以了。