如何检查.NET 4.5中的ZipArchiveEntry是否已损坏

时间:2013-09-18 15:40:06

标签: c# .net wpf zip .net-4.5

我正在使用.NET 4.5的新ZipArchiveZipArchiveEntry类从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

     

存档中缺少该条目,或者该条目已损坏且无法存档   读。    - 或 - 使用不受支持的压缩方法压缩条目。

我做错了什么?或者我该如何检查此包中的文件是否已损坏?

0 个答案:

没有答案