3

我正在使用 .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 资源管理器“提取所有...”命令或使用 7zip 解压缩此文件时,我总是收到错误消息(正如预期的那样,因为我出于测试目的使文件损坏),但是当我尝试代码时也不例外被抛出并且所有文件都被解压缩。

根据Microsoft MSDN 文档InvalidDataException应该抛出一个。

ZipFileExtensions.ExtractToDirectory

无效数据异常

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

我究竟做错了什么?或者我如何检查这个包中的文件是否损坏?

4

0 回答 0