tags:

views:

278

answers:

4

I want to compress an entire directory which can have any number of subdirectories into a single ZIP file.

I am able to compress a single file into a zip file programmatically.

To compress an entire directory, i can think of a recursive program that walks through each subdirectory and compresses it.

But Is there any simple way to compress the entire folder using the similar code, without having to write any recursive functions?

+5  A: 

Take a look at one of these API's:

gautema
+2  A: 

You can see Article about Zip / Unzip folders and files with C#.

In The Pink
A: 

This is what I like to use:

pro: Very easy implementation

con: Not very user friendly

the_ajp
A: 

Using DotNetZip, there's an AddDirectory() method on the ZipFile class that does what you want:

using (var zip = new Ionic.Zip.ZipFile())
{
    zip.AddDirectory("DirectoryOnDisk", "rootInZipFile");
    zip.Save("MyFile.zip");
}

This example, and many others, are available on codeplex.

Cheeso