У меня есть файл .tar, содержащий несколько сжатых файлов .gz. У меня нет проблем с переходом через файл .tar, создавая каждый файл .gz в каталоге назначения. Я хотел бы пропустить написание .gz все вместе и просто распаковать его из TarEntry / TarArchive? и записывать его содержимое на лету через .Net родной GZipStream. Даже не уверен, что это возможно.
Вот мой текущий код, который записывает каждый разархивированный файл. Не уверен, что изменить, чтобы получить, где я должен быть.
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);
}
}
}
}