使用标准.Net Zip库(System.IO.Compression.FileSystem
)并解压缩包含多个大文件的存档时,我遇到了这个奇怪的异常。
例外是:
End Of Central Directory中预期的条目数与中央目录中的条目数不对应。**
代码就像这样简单:
using (var zip = ZipFile.OpenRead(@"C:\Temp\BigFile.ZIP"))
{
zip.ExtractToDirectory(@"C:\Temp");
}
我正在尝试解压缩的zip文件大约400mb,它有2个每个5.5Gb的TEXT文件(+ 3个其他小尺寸文件)。
无论我如何改变代码,我都会得到异常(我已经尝试foreach
循环逐个提取文件和同样的问题)。
现在真正奇怪的是,这个提取在我的开发机器上运行得非常好(来自VS或不是)。 但是,一旦我在服务器上尝试它,我就会收到此异常。 服务器机器安装了.NET 4.5,它的主要功能是一个SQL服务器,所以它上运行的东西很少,但它有足够的资源,它是一台Windows服务器2008 R2 x64,有足够的内存(32GB)和CPU。
让我们深入了解陌生感...... 如果我修改Zip文件,以便剩下2个大文件中只有1个,它可以正常工作(在服务器上)。我认为由于文件大小我不知何故达到了限制,但显然不是这种情况的情况。
显然,任何其他包含较小文件的存档都可以与上述代码完美配合。
有什么想法吗?
只是在每个人开始使用“使用第三方等......”进行轰炸之前给出一些背景信息我正在使用SSIS的DTS包中运行C#脚本,并且在我知道的情况下与第三方合作是不可能的。
谢谢