Создание ZIP-файлов в C#

Эффективное сжатие в .NET - уменьшение размера файлов, упаковка данных и автоматизация архивации.

Как создать сжатую ZIP-папку

Сжатие файлов и папок в ZIP - стандартный способ экономить место, ускорять обмен и упорядочивать резервное копирование. С Aspose.Zip for .NET можно создавать ZIP-архивы прямо из C#, управлять уровнем сжатия и включать защиту паролем или AES-шифрование. API хорошо встраивается в server-side сервисы, внутренние инструменты, CI/CD и desktop-приложения.

Создание ZIP-архива изображений в C#

Для изображений используйте объект FileStream , класс Archive , CreateEntry и Save .

Пример C# для ZIP-архива с изображениями.

  // For complete examples and data files, please go to https://github.com/aspose-zip/Aspose.ZIP-for-.NET
  using (FileStream zipFile = File.Open(dataDir + "CompressSingleFile_out.zip", FileMode.Create))
  {
      //File to be added to archive
      using (FileStream source1 = File.Open(dataDir + "picture123.png", FileMode.Open, FileAccess.Read))
      {
          using (var archive = new Archive(new ArchiveEntrySettings()))
          {
              archive.CreateEntry("picture123.png", source1);
              
              archive.Save(zipFile);
          }
      }
  }

Конвертация PDF в ZIP в C#

Для PDF используется тот же поток - Archive, CreateEntry, затем Save. Можно добавить несколько документов и настроить параметры под сценарий.

Пример C# для ZIP-архива из PDF-файлов.

  var dir = "full directory path";
  using (var arch = new Archive())
  {
    arch.CreateEntry("filename.pdf", dir+"file.pdf");
    arch.Save(dir+"pdf-files-archived_result.zip");
  }

Сжатие нескольких файлов в ZIP с паролем

Aspose.Zip поддерживает традиционное шифрование и AES (AES128, AES192, AES256) для нескольких файлов и папок. Поток остается прежним - добавить entry и сохранить.

Пример C# для архивирования с шифрованием.

  using (FileStream zipFile = File.Open(dataDir + "CompressWithTraditionalEncryption_out.zip", FileMode.Create))
  {
      using (FileStream file1 = File.Open(dataDir + "alice29.txt", FileMode.Open, FileAccess.Read))
      {
      using (FileStream file2 = File.Open(dataDir + "asyoulike.txt", FileMode.Open, FileAccess.Read))
        {
          using (var archive = new Archive(new ArchiveEntrySettings(null, new TraditionalEncryptionSettings("p@s$"))))
          {
            archive.CreateEntry("alice29.txt", file1);
            archive.CreateEntry("asyoulik3.txt", file2);
            archive.Save(zipFile);
          }
                
        }
      }
  }

Документация - функции сжатия в Aspose.ZIP для .NET

Aspose.Zip for .NET обеспечивает надежное архивное сжатие с понятным API и высокой производительностью. Пространство имен ZIP содержит ключевые классы для ZIP и связанных сущностей.

Другие поддерживаемые форматы для сжатия

Вы также можете сжимать PNG, PPT, MPX, MP3, GPX, HTML, DOCX, JPEG, XML и многие другие форматы в ZIP-архив.