使用.Net 4.5 ZipFile,无法解压缩使用Windows zip压缩的文件(右键单击“发送到压缩文件”)

使用.Net 4.5 ZipFile,无法解压缩使用Windows zip压缩的文件(右键单击“发送到压缩文件”),.net,windows,compression,unzip,.net,Windows,Compression,Unzip,我在办公室的ASP.NET web应用程序中实现了一项功能,允许人们上传zip文件,其中包含要导入数据库的xml文件 问题是,我在使用System.IO.Compression.ZipFile时出现此错误: “中心目录末尾预期的条目数不正确 对应于中央目录中的条目数。“ 当我使用System.IO.Compression.DeflateStream时,会出现以下错误: “块长度与其补码不匹配。” Windows zip不使用相同的库吗?从.Net到Windows zip的zip格式/算法是否不同

我在办公室的ASP.NET web应用程序中实现了一项功能,允许人们上传zip文件,其中包含要导入数据库的xml文件

问题是,我在使用
System.IO.Compression.ZipFile
时出现此错误:

“中心目录末尾预期的条目数不正确 对应于中央目录中的条目数。“

当我使用
System.IO.Compression.DeflateStream
时,会出现以下错误:

“块长度与其补码不匹配。”

Windows zip不使用相同的库吗?从.Net到Windows zip的zip格式/算法是否不同


如果有人能提出解决方案,我将不胜感激

这可能在.NET实现中提供了对deflate、zip等的支持。您应该试试。

我发现了问题,似乎.net库解压文件没有问题,问题是文件上传到asp.net应用程序后写入磁盘的方式,编码有问题,因为我将确切的字节写入磁盘,所以我可以用.net库解压它


谢谢大家的贡献

您尝试过ionic.zip吗?.zip存档中的目录已损坏。它位于文件的末尾,当你不能正确上传文件时,它总是一个引起麻烦的好地方。@CodesInChaos刚刚下载了它,我准备试一试。@HansPassant错误表明,但每次我用windows zip压缩时都会发生,因此,由于.net压缩库对文件格式的期望不同,必然会出现这种情况。听起来不合逻辑,这让我很困惑。我将使用其他库,但我怀疑我是唯一一个希望.Net库能够打开使用Windows zip压缩的文件的人。