首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用System.IO.Compression验证zip文件

使用System.IO.Compression验证zip文件
EN

Stack Overflow用户
提问于 2016-08-16 09:14:09
回答 2查看 9.7K关注 0票数 8

有没有任何方法可以使用System.IO.Compression功能检查文件是否是有效的zip文件?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-08-17 03:34:57

解决方案:使用ZipFile.OpenRead()方法打开zip归档,并列出所有条目;如果没有出现异常,则归档是有效的。

例如:

代码语言:javascript
复制
    public static bool IsZipValid(string path)
    {
        try
        {
            using (var zipFile = ZipFile.OpenRead(path))
            {
                var entries = zipFile.Entries;
                return true;
            }
        }
        catch (InvalidDataException)
        {
            return false;
        }
    }
票数 18
EN

Stack Overflow用户

发布于 2016-08-16 10:44:01

使用ExtractToDirectory提取ZIP文件,并在InvalidDataException中为无效的ZIP文件编写代码。

关于"InvalidDataException“的出丑:-

sourceArchiveFileName指定的归档不是有效的zip归档。

-或者-

没有找到或损坏了存档条目。

-或者-

使用不支持的压缩方法压缩了存档条目。

代码语言:javascript
复制
        try
        {
            string startPath = @"c:\example\start";
            string zipPath = @"c:\example\result.zip";
            string extractPath = @"c:\example\extract";

            ZipFile.CreateFromDirectory(startPath, zipPath);

            ZipFile.ExtractToDirectory(zipPath, extractPath);
        }
        catch (InvalidDataException ex)
        {
            //Handle invalid zip here
        }
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38970926

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档