Как сжать несколько файлов в файле GZip с помощью класса GZipStream? - PullRequest
8 голосов
/ 07 ноября 2010

Я просто ищу способ сжатия нескольких файлов в файле GZip с помощью класса GZipStream.У кого-нибудь есть идеи, как это сделать?

Ответы [ 3 ]

8 голосов
/ 07 ноября 2010

Как правило, формат gzip не поддерживает несколько файлов. Традиционно, один упаковывает несколько файлов, используя tar перед сжатием результата; Вы, вероятно, хотите сделать что-то подобное.

3 голосов
/ 07 ноября 2010

Формат файла gzip является форматом архива, он содержит заголовок и каталог, в котором перечислены все сжатые файлы в архиве. GZipStream просто сжимает данные, записанные в поток. Эквивалент одного файла в архиве, он не может генерировать формат архива.

Популярным решением является SharpZipLib , есть много других.

0 голосов
/ 09 апреля 2013

Старая тема, но может помочь будущим читателям.

Я нашел это решение ( здесь ), которое предлагает сжимать / распаковывать каталог, используя собственный класс GZipStream.

Пример создания списка файлов с использованием Directory.GetFiles, но этот пункт легко изменить и адаптировать к вашим потребностям.

Примечание: сжатый файл не является файлом gzip, который можно открытьсторонним программным обеспечением, но это хорошее решение для внутреннего управления вашим приложением (лично я использую его для передачи файлов исправлений приложения по сети).

...