Как сжимать каталог в zip файл программно
Я хочу сжать весь каталог, который может содержать любое количество подкаталогов в один ZIP файл.
Я могу скомпилировать один файл в zip файл программным способом.
Чтобы сжать весь каталог, я могу думать о рекурсивной программе, которая проходит через каждый подкаталог и сжимает его.
Но Есть ли какой-либо простой способ сжать всю папку с помощью аналогичного кода без необходимости писать какие-либо рекурсивные функции?
Ответы
Ответ 1
Используя DotNetZip, в классе ZipFile есть метод AddDirectory(), который делает то, что вы хотите:
using (var zip = new Ionic.Zip.ZipFile())
{
zip.AddDirectory("DirectoryOnDisk", "rootInZipFile");
zip.Save("MyFile.zip");
}
Этот пример и многие другие, доступны в codeplex.
Ответ 2
Взгляните на один из этих API:
Ответ 3
ZipFile.CreateFromDirectory(<path of folder you need to zip>, <path of zip file with .zip in the end>, CompressionLevel.Fastest, true);
Ответ 4
Вы можете увидеть Статья о Zip/Unzip папках и файлах с С#.
Ответ 5
Вот что мне нравится:
pro: очень простая реализация
con: Не очень удобный