Как создать ZIP-файл в памяти на C#

Как создать ZIP-файл в памяти на C#

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

Преимущества создания файлов ZIP в памяти

  • Персональность:- Избегает верхней части диска I/O, ускоряя процесс.

  • Временное хранение:- Собирает файлы в памяти для быстрого доступа и обработки.

  • Гибкость:- Упрощает такие операции, как отправление файлов через сеть без промежуточного хранения.

Преимущества: Подготовка к окружающей среде

  • Настройка Visual Studio или любой совместимый .NET IDE.
  • Инсталляция Aspose.ZIP из NuGet Package Manager.

Шаг за шагом Руководство по созданию файла ZIP в памяти

Первый шаг: установка Aspose.ZIP

Начните с добавления библиотеки Aspose.ZIP к вашему проекту.

Install-Package Aspose.ZIP

Шаг 2: Включите название

Добавьте в Aspose.Zip Назовите код для использования его функциональностей.

using Aspose.Zip;

Шаг 3: Загрузите файлы с диска

Восстановите файловые пути из источника папки в строк.

string[] filesArray = Directory.GetFiles("YourFolderPath", "*.*", SearchOption.TopDirectoryOnly);

Шаг 4: Создание архивного объекта

Внезапно на Archive Объекты в памяти, чтобы хранить входы ZIP.

using (MemoryStream zipFileInMemory = new MemoryStream())
{
    using (Archive zipArchive = new Archive())
    {
        // Further processing follows here
    }
}

Шаг 5: Создание архивных записей

Пройдите через артефакт файлов и создайте ArchiveEntry для каждого файла.

foreach (string fileDiskPath in filesArray)
{
    string fileName = Path.GetFileName(fileDiskPath);
    zipArchive.CreateEntry(fileName, fileDiskPath);
}

Шаг 6: Сохраните файл ZIP в памяти

Создайте ZIP-архив в памяти, сохраняя его в MemoryStream.

zipArchive.Save(zipFileInMemory);

Полный пример кода для создания ZIP-файла в памяти

Вот полный код, который иллюстрирует, как создать ZIP-файл в памяти:

// Create a MemoryStream instance for the ZIP file
using (MemoryStream zipFileInMemory = new MemoryStream())
{
    // Create an empty Archive object for ZIP
    using (Archive zipArchive = new Archive())
    {
        // Get all files from a folder and store their paths in a string array
        string[] filesArray = Directory.GetFiles("YourFolderPath", "*.*", SearchOption.TopDirectoryOnly);

        // Loop through the array and create an ArchiveEntry for each file
        foreach (string fileDiskPath in filesArray)
        {
            string fileName = Path.GetFileName(fileDiskPath);
            zipArchive.CreateEntry(fileName, fileDiskPath);
        }

        // Save the Archive in memory
        zipArchive.Save(zipFileInMemory);
    }
}

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

  • Вы можете легко изменить код, чтобы применить методы шифрования или компрессии к файлу ZIP.
  • Это решение позволяет выполнять дальнейшие операции на файле ZIP в памяти, например, отправлять его через сеть или хранить его на диске позже.

Заключение

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

 Русский