如何解压缩zip文件c#

时间:2011-11-20 11:54:27

标签: c# winforms

我想以编程方式提取zip文件。

我搜索了谷歌,但我还没有找到它。 我正在使用这些代码,但我收到此错误

  

GZip标头中的幻数不正确。确保你是   传入GZip流。

代码:

    public static void Decompress(FileInfo fi)
    {
        using (FileStream inFile = fi.OpenRead())
        {
            string curFile = fi.FullName;
            string origName = curFile.Remove(curFile.Length - fi.Extension.Length);
            using (FileStream outFile = File.Create(origName))
            {
                using (GZipStream Decompress = new GZipStream(inFile,
                        CompressionMode.Decompress))
                {
                    byte[] buffer = new byte[4096];
                    int numRead;
                    while ((numRead = Decompress.Read(buffer, 0, buffer.Length)) != 0)
                    {
                        outFile.Write(buffer, 0, numRead);
                    }
                    Console.WriteLine("Decompressed: {0}", fi.Name);

                }
            }
        }
    }

如果有人能帮助我,我们将非常感激。

提前致谢。

1 个答案:

答案 0 :(得分:11)

错误表明您没有打开 GZip 文件。 GZip库无法打开标准ZIP存档。

请参阅GZip Format on wikipedia

您可以使用DotNetZip打开/读取/写入标准zip存档,甚至可以编写受密码保护的加密拉链。它也在nuget上。