I just came across a problem where I needed to zip an entire directory up into a .zip file using C#. I quickly found a way using System.IO.Compression that would allow me to zip a single file up:
This was so close, but not quite what I needed. I then found out about DotNetZip and was able to quickly throw together a little test app that did just what I needed:
Pretty slick, and best of all DotNetZip is a free library - check it out!