2011-11-20 79 views
6

我想以编程方式解压zip文件。如何解压zip文件c#

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

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); 

       } 
      } 
     } 
    } 

会有很大的升值,如果有人可以帮助我。

在此先感谢。

回答

11

错误提示您未打开GZip文件。 GZip库无法打开标准ZIP存档。

GZip Format on wikipedia

您可以使用DotNetZip打开/读/写标准的ZIP压缩文件,甚至写加密,密码保护的拉链。它也在nuget

+0

感谢它的工作 –

+0

不客气! =) – gideon