2009-08-28 4 views
16

ZippedXmls.tar.gzという名前のタール型のgunzipファイルがあります。このファイルには2つのxmlがあります。 プログラムでこのファイルを解凍する必要があり、出力は2つのxmlsがフォルダにコピーされている必要があります。C#を使って.gzファイルを解凍する

これをC#でどのように達成できますか?

+2

2つの2 "xml"を1つの.gzファイルにどのように保存しますか?それとも実際に.tar.gzファイルですか? – dtb

+0

gzip標準では、バイトストリームのみが圧縮および圧縮解除されることに注意してください。ファイルのグループが圧縮されている場合は、dtbが示すように、gzipされる前に単一のファイルとしてアーカイブされます。 –

答えて

33

を行うことができるはず。ネットのバイトストリームをgzippingためGZipStreamを内蔵し、それだけで正常に動作します。私はあなたのファイルがgzipされる前に最初にtarされていると考えます。

あなたはので、ここでのサンプルは、あなたはzip形式で圧縮された1つのファイルを持っていると仮定すると、だ、コードを求めてきました:

FileStream stream = new FileStream("output.xml", FileMode.Create); // this is the output 
GZipStream uncompressed = new GZipStream(stream, CompressionMode.Decompress); 

uncompressed.Write(bytes,0,bytes.Length); // write all compressed bytes 
uncompressed.Flush(); 
uncompressed.Close(); 

stream.Dispose(); 

編集:

あなたがするようにあなたの質問を変更しましたファイルはtar.gzファイルです - 技術的に私の答えはあなたの状況には当てはまりませんが、ここでは.gzファイルを扱いたい人のために残しておきます。

+0

はい、ファイルはtarredされ、次にzipped.howはこの場合2 xmlsを取得しますか?あなたの助けをありがとう。 –

+0

sharpziplibはあなたが使いたいものです。これはtar.gzファイルを扱います。 –

+0

おかげさまでチャーリーに助けてくれてありがとう! –

関連する問題