Я хочу сжать весь каталог, который может иметь любое количество подкаталогов в единственный zip-файл.
Я могу сжать единственный файл в zip-файл программно.
Для сжатия всего каталога я могу думать о рекурсивной программе, которая идет через каждый подкаталог и сжимает его.
Но Есть ли какой-либо простой способ сжать всю папку с помощью подобного кода, не имея необходимость писать какие-либо рекурсивные функции?
Используя DotNetZip , в классе ZipFile есть метод AddDirectory (), который делает то, что вы хотите:
using (var zip = new Ionic.Zip.ZipFile())
{
zip.AddDirectory("DirectoryOnDisk", "rootInZipFile");
zip.Save("MyFile.zip");
}
Этот пример и многие другие доступны на codeplex .
Вы можете посмотреть Статью о Zip / Unzip папок и файлов с помощью C#.