Сжатие и распаковка папок в C # - PullRequest
5 голосов
/ 20 января 2011

Я хочу сжать и распаковать папку, используя C #.Проблема с GZipStream состоит в том, что он принимает имена файлов и, следовательно, мне нужно написать рекурсивную логику.

Можно ли как-нибудь сделать это, дать имя исходной папки и имя файла назначения, чтобы сжать всю папку с иерархией.Мне нужно сделать наоборот для распаковки папки.Если это невозможно через C # /. Net напрямую, предложите какую-нибудь бесплатную стороннюю версию.

Ответы [ 5 ]

8 голосов
/ 20 января 2011

Я использовал бесплатный SharpZipLib несколько раз, и я рекомендую вам взглянуть на него. Он довольно прост в использовании и хорошо работает для всех моих случаев использования.

3 голосов
/ 24 апреля 2013

Теперь включено в .NET 4.5, если вы предпочитаете не использовать Microsoft.

System.IO.Compression.ZipArchive Class

2 голосов
/ 20 января 2011

GZip имеет дело только с отдельными файлами, поэтому в * nix вам придется сначала архивировать их в файл TAR, который затем сжимается.

Если вам нужно несколько файлов / папок,нужен формат, который поддерживает его, например, ZIP.

Вы можете посмотреть таким образом: http://www.sharpdevelop.net/OpenSource/SharpZipLib/

1 голос
/ 20 января 2011

Вместо этого вы можете взглянуть на эту библиотеку .

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

Взгляните на DotNetZip Lib.

...