我正在使用.NET 4.5的新ZipArchive和ZipArchiveEntry类从Zip包中提取文件 .
这基本上是发生了什么:
try {
using (var archive = ZipFile.OpenRead(filename))
{
foreach (var entry in archive.Entries)
{
// Check if file should be extracted
...
entry.ExtractToFile(@"C:\Test\" + entry.FullName, true)
}
}
}
catch (Exception ex)
{
MessageBox.Show("Unzipping error: " + ex.Message);
}
当我尝试使用标准Windows资源管理器“Extract All ...”命令或使用7zip解压缩此文件时,我总是收到错误(正如预期的那样,因为我为了测试目的而使文件损坏),但是当我尝试代码时没有异常抛出并且所有文件都被解压缩 .
根据Microsoft MSDN Documentation应该抛出 InvalidDataException
.
ZipFileExtensions.ExtractToDirectory InvalidDataException存档中缺少该条目,或者该条目已损坏且无法读取 . - 或 - 使用不受支持的压缩方法压缩条目 .
我究竟做错了什么?或者我如何检查此包中的文件是否已损坏?