Подтвердить что ты не робот

Как сжимать каталог в zip файл программно

Я хочу сжать весь каталог, который может содержать любое количество подкаталогов в один ZIP файл.

Я могу скомпилировать один файл в zip файл программным способом.

Чтобы сжать весь каталог, я могу думать о рекурсивной программе, которая проходит через каждый подкаталог и сжимает его.

Но Есть ли какой-либо простой способ сжать всю папку с помощью аналогичного кода без необходимости писать какие-либо рекурсивные функции?

4b9b3361

Ответ 1

Используя DotNetZip, в классе ZipFile есть метод AddDirectory(), который делает то, что вы хотите:

using (var zip = new Ionic.Zip.ZipFile())
{
    zip.AddDirectory("DirectoryOnDisk", "rootInZipFile");
    zip.Save("MyFile.zip");
}

Этот пример и многие другие, доступны в codeplex.

Ответ 3

ZipFile.CreateFromDirectory(<path of folder you need to zip>, <path of zip file with .zip in the end>, CompressionLevel.Fastest, true);

Ответ 5

Вот что мне нравится:

pro: очень простая реализация

con: Не очень удобный