2014-01-28 27 views
2

我在我的項目中嵌入了zip文件。我需要將它解壓縮到某個位置。如何從c中的嵌入文件流中解壓縮#

我不喜歡使用外部庫。

Stream _pluginZipResourceStream = System.Reflection.Assembly.GetExecutingAssembly().GetManifestResourceStream("plugin.zip"); 

我試過GZipStream,但結果出錯了!

 using (FileStream decompressedFileStream = File.Create(outputFileName)) 
     { 
      using (GZipStream decompressionStream = new GZipStream(fileStream, CompressionMode.Decompress)) 
      { 
       decompressionStream.CopyTo(decompressedFileStream); 
      } 
     } 

InvalidDataException是未處理:神奇的數字在gzip頭信息是不正確的。確保你傳入一個GZip流。

如何解壓縮?

回答

1

如果你有幸使用的框架4.5或更高版本,可以使用ZipArchive看到:

http://msdn.microsoft.com/de-de/library/System.IO.Compression%28v=vs.110%29.aspx

如果你被卡住4.0或以上,你將不得不使用一個外部庫,或轉換你的檔案到GZip。

+0

我應該使用ZipArchiveEntry.ExtracttoFile嗎? – Dineshkumar

+0

取決於您在zip文件中存儲的內容。如果你有多個文件壓縮在那裏,你想得到那個,那麼ZipArchiveEntry.ExtractToFile是你的選擇。如果你只是想解壓所有的文件,即使你只有一個文件,我更喜歡ZipArchive.ExtractToDirectory。希望能幫助到你。 – Omnibus

+0

謝謝,我嘗試了所有,並最終使它工作! – Dineshkumar