Для создания и распаковки zip архивов я использую библиотеку DotnetZip
Создание архива:
Распаковка архива:
using (ZipFile zip = ZipFile.Read(zipFile)) zip.ExtractAll(siteFolder, existingFileAction);
Работа библиотеки Меня вполне устраивает, но при сжатии файлов в несколько гигабайт рекомендую использовать:
zip.UseZip64WhenSaving = Zip64Option.AsNecessary;
Создание архива:
using (var zip = new ZipFile())
{
// оставляем комментарий к архиву
zip.Comment = "Archive created by " + User.Identity.Name + " at " + DateTime.Now;
// добавляем незапароленный файл в архив
zip.AddFile(HostingEnvironment.ApplicationPhysicalPath + "ReadMe.txt"); // устанавливаем пароль к архиву zip.Password = password; // добавляем файл в архив, этот файл будет доступен только с вводом пароля, т.к. выше был установлен пароль zip.AddFile(databaseFileName); // установка уровня сжатияzip.CompressionLevel = CompressionLevel.BestCompression;// сохраняем архив zip.Save(databaseFileName + ".zip");
}
Распаковка архива:
using (ZipFile zip = ZipFile.Read(zipFile)) zip.ExtractAll(siteFolder, existingFileAction);
Работа библиотеки Меня вполне устраивает, но при сжатии файлов в несколько гигабайт рекомендую использовать:
zip.UseZip64WhenSaving = Zip64Option.AsNecessary;
Что такое "existingFileAction"?
ОтветитьУдалитьЕсли не ошибаюсь это булевый флаг - переписать ли существующие файлы
Удалить