Old topic, but may help future readers.
I found this solution ( here ) that offer to compress / unzip a directory using the native GZipStream class.
In the example, create a list of files using Directory.GetFiles, but it is easy to change this point and adapt it to your needs.
Note. the compressed file is not a gzip file that can be opened by thrid-party software, but it is a good solution for managing your application internally (I personally use it to transfer application patch files over the network).
Alex
source share