2011-11-20 82 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