Как создать ZIP-архив папки на C#

Как создать ZIP-архив папки на C#

Эта краткая статья объясняет, как заархивировать папку в C#. Она предоставляет подробные шаги и пример кода, чтобы помочь в создании ZIP-файла для папки и её содержимого. Это решение не требует установки каких-либо сторонних инструментов.

Преимущества архивирования папок

  1. Экономия пространства:
    • Уменьшает занимаемое пространство за счёт сжатия файлов.
  2. Организованное управление файлами:
    • Объединяет несколько файлов в один архив для более удобного распространения и управления.
  3. Быстрее передача:
    • Меньшие размеры файлов приводят к более быстрым времени загрузки и скачивания.

Предварительные требования: Подготовка окружения

  1. Настройте Visual Studio или любую совместимую .NET IDE.
  2. Установите библиотеку Aspose.ZIP через диспетчер пакетов NuGet.

Пошаговое руководство по архивированию папки

Шаг 1: Установите Aspose.ZIP

Добавьте библиотеку Aspose.ZIP в ваш проект.

Install-Package Aspose.ZIP

Шаг 2: Создайте объект FileStream

Создайте объект FileStream для выходного ZIP-файла.

using System.IO;
var zippedFolder = File.Open("AnimationImages.zip", FileMode.Create);

Шаг 3: Создайте объект ZIP-архива

Создайте экземпляр класса Archive для выполнения операций с ZIP.

using (Archive archiveFile = new Archive())
{
    // Дальнейшая обработка будет здесь
}

Шаг 4: Создайте записи в архиве

Добавьте все файлы и папки из целевого каталога рекурсивно.

archiveFile.CreateEntries("AnimationImages");

Шаг 5: Сохраните ZIP-файл

После создания записей сохраните архив на диск.

archiveFile.Save(zippedFolder);

Полный пример кода для архивирования папки

Вот полный пример на C#, демонстрирующий, как заархивировать папку:

// Создайте объект файлового потока для выходного zip-файла
using (FileStream zippedFolder = File.Open("AnimationImages.zip", FileMode.Create))
{
    // Создайте объект класса файла Zip архива
    using (Archive archiveFile = new Archive())
    {
        // Добавьте все файлы и папки рекурсивно
        archiveFile.CreateEntries("AnimationImages");

        // Сохраните выходной ZIP-файл
        archiveFile.Save(zippedFolder);
    }
}

Дополнительная информация

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

Заключение

Этот учебник провёл вас через процесс архивирования полной папки в C#. С помощью всего лишь нескольких строк кода вы можете легко управлять структурами папок и эффективно создавать ZIP-архивы. Для получения дополнительных функций ознакомьтесь с учебниками по извлечению ZIP-файлов или созданию различных типов архивов.

 Русский