SharpZipLib: распаковать .gz из файла .tar? - PullRequest
0 голосов
/ 18 апреля 2011

У меня есть файл .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);
                    }
                }
            }
        }

1 Ответ

0 голосов
/ 20 апреля 2011

Я не уверен, что ты хочешь делать.Может быть, вы можете уточнить вашу цель.Sharpzlib не так хорошо задокументирован, как я ожидал.

Я перебрал архив tar и поместил содержимое файла в новый поток, возможно, вы можете использовать это как отправную точку.Посмотрите на эту статью StackOverflow

...