 <p>Why not try something like this:</p> <pre><code>foreach (var file in System.IO.Directory.GetFiles(k)) { zip.AddFile(file); } </code></pre> <p>To get the directories and files to an unlimited depth, combine that with a recursion method based on <code>System.IO.Directory.GetDirectories("path")</code> - should be pretty straightforward methinks.</p>