複数の圧縮された .gz ファイルを含む .tar ファイルがあります。宛先ディレクトリに各 .gz ファイルを作成する .tar ファイルを繰り返し処理しても問題はありません。.gz をまとめて書き込むのをスキップして、TarEntry/TarArchive から解凍するだけですか? .Net ネイティブ GZipStream を介してオンザフライでコンテンツを書き込みます。これが可能かどうかさえわかりません。
g'zip で圧縮された各ファイルを書き出す現在のコードを次に示します。必要な場所に移動するために何を変更すればよいかわかりません。
using (FileStream _fsIn = new FileStream(@"F:\data\abc.tar", FileMode.Open, FileAccess.Read))
{
using (TarInputStream _tarIn = new TarInputStream(_fsIn))
{
TarEntry _tarEntry;
while ((_tarEntry = _tarIn.GetNextEntry()) != null)
{
string _archiveName = _tarEntry.Name;
using (FileStream _outStr = new FileStream(@"F:\data\" + _archiveName, FileMode.Create))
{
_tarIn.CopyEntryContents(_outStr);
}
}
}
}