5

I want to compress and decompress a folder using C#. The problem with GZipStream is that it takes filenames and hence I need to write a recursive logic.

Can I somehow do it like, give source folder name and destination filename to compress the complete folder with hierarchy. I need to do vice-versa for de-compressing the folder as well. If its not possible through C#/.net directly please suggest some Free 3rd party.

Saubhagya
  • 1,075
  • 1
  • 9
  • 12

5 Answers5

8

I've used the free SharpZipLib multiple times and I'd recommend that you take a look at it. It's quite easy to use and have worked well for all my use cases.

Hans Olsson
  • 54,199
  • 15
  • 94
  • 116
3

Now included in .NET 4.5 if you'd rather stay off non microsoft libs.

System.IO.Compression.ZipArchive Class

Crypth
  • 1,576
  • 18
  • 32
2

GZip only ever deals with single files, which is why under *nix you end up having to archive them into a TAR file first which is then compressed.

If you want multiple files/folders you'll need a format which supports it, like ZIP.

You might want to thus look at: http://www.sharpdevelop.net/OpenSource/SharpZipLib/

Lloyd
  • 29,197
  • 4
  • 84
  • 98
1

You could take a look at this library instead.

Jake Pearson
  • 27,069
  • 12
  • 75
  • 95
0

Take a look at DotNetZip Lib.

Morvader
  • 2,317
  • 3
  • 31
  • 44