2016-06-30 11 views
0

では.tar.gz行う。解凍それはエラーが「中央のディレクトリを見つけることができない」と私は何をするのか分からない私を示して私は1つのzip内のtar.gzを解凍しようとしていますが、私はできません</p> <p>SharpZipLib

最初に一時フォルダにジッパーを解凍し、そのフォルダで.tar.gzを検索して解凍しようとしますが、そのエラーでクラッシュしますが、私はwinrarアプリケーションで開くことができます。いくつかのフォルダと内部のいくつかのファイル。

これは私のコードです:

var trash = Path.Combine(_temporalPath, "Trash"); 
     try 
     { 
      var zip = new FastZip(); 
      Directory.CreateDirectory(trash); 
      zip.ExtractZip(_origin, trash, ""); 
      var gzip = Directory.GetFiles(trash, "*.tar.gz")[0]; 
      zip.ExtractZip(gzip, trash, FastZip.Overwrite.Always.ToString()); 
      File.Delete(gzip); 
     } 
     catch (Exception) 
     { 
      //IGNORE 
     } 

私は情報を検索するが、私は唯一の解凍一つのファイルを見つけます。 enter image description here

私が必要とするのは、tar.gzを開いて内部からファイルを取得することです。

+0

:http://stackoverflow.com/questions/24138373/unzip-gz-file-using-c-sharp –

+0

その質問に、彼らは唯一のファイルではないグループを解凍 –

+0

このFastZipについて:https://github.com/icsharpcode/SharpZipLib/wiki/FastZip –

答えて

0

最後に、私は、フォームを見つけました。

var trash = Path.Combine(_temporalPath, "Trash"); 
     try 
     { 
      var zip = new ICSharpCode.SharpZipLib.Zip.FastZip(); 
      Directory.CreateDirectory(trash); 
      zip.ExtractZip(_origin, trash, null); 
      var gzip = Directory.GetFiles(trash, "*.gz")[0]; 
      UnGzFile(gzip, Path.Combine(trash, Path.GetFileNameWithoutExtension(gzip))); 
      File.Delete(gzip); 
      var tar = Directory.GetFiles(trash, "*.tar")[0]; 
      var stream = File.OpenRead(tar); 
      var tarArchive = ICSharpCode.SharpZipLib.Tar.TarArchive.CreateInputTarArchive(stream); 
      tarArchive.ExtractContents(trash); 
      tarArchive.Close(); 
      stream.Close(); 
      File.Delete(tar); 
     } 
     catch (Exception ex) 
     { 
      //IGNORE 
     } 

申し訳ありませんと感謝の関連

0

https://github.com/icsharpcode/SharpZipLib/wiki/FastZip

using System; 
using ICSharpCode.SharpZipLib.Zip; 

public void TestFastZipUnpack(string zipFileName, string targetDir) { 

    FastZip fastZip = new FastZip(); 
    string fileFilter = null; 

    // Will always overwrite if target filenames already exist 
    fastZip.ExtractZip(zipFileName, targetDir, fileFilter); 
} 
+0

残念ながら同じことが起こる –

+0

Microsoftから直接使用する方法:https://msdn.microsoft.com/en-us/library/ms404280(v=vs.110).aspx –

関連する問題

 関連する問題