Як створити ZIP-файл у пам'яті в C#

Як створити ZIP-файл у пам'яті в C#

У цьому покроковому підручнику ви дізнаєтеся, як створити ZIP-файл у пам’яті за допомогою C#. Процес, описаний тут, дозволяє вам стискати файли та папки у формат ZIP без необхідності створення фізичного файлу на диску.

Переваги створення ZIP-файлів у пам’яті

  1. Продуктивність:
    • Уникає накладних витрат на дисковий ввід/вивід, що робить процес швидшим.
  2. Тимчасове зберігання:
    • Зберігає файли в пам’яті для швидкого доступу та обробки.
  3. Гнучкість:
    • Полегшує операції, такі як надсилання файлів через мережу без проміжного зберігання.

Попередні вимоги: Підготовка середовища

  1. Налаштуйте Visual Studio або будь-яку сумісну IDE для .NET.
  2. Встановіть Aspose.ZIP з диспетчера пакетів NuGet.

Покрокова інструкція зі створення ZIP-файлу в пам’яті

Крок 1: Встановіть 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())
    {
        // Подальша обробка триває тут
    }
}

Крок 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-файл у пам’яті:

// Створіть екземпляр MemoryStream для ZIP-файлу
using (MemoryStream zipFileInMemory = new MemoryStream())
{
    // Створіть порожній об'єкт Archive для ZIP
    using (Archive zipArchive = new Archive())
    {
        // Отримайте всі файли з папки та збережіть їх шляхи в масиві рядків
        string[] filesArray = Directory.GetFiles("YourFolderPath", "*.*", SearchOption.TopDirectoryOnly);

        // Пройдіть через масив і створіть ArchiveEntry для кожного файлу
        foreach (string fileDiskPath in filesArray)
        {
            string fileName = Path.GetFileName(fileDiskPath);
            zipArchive.CreateEntry(fileName, fileDiskPath);
        }

        // Збережіть архів у пам'яті
        zipArchive.Save(zipFileInMemory);
    }
}

Додаткова інформація

  • Ви можете легко змінити код, щоб застосувати методи шифрування або стиснення до ZIP-файлу.
  • Це рішення дозволяє вам виконувати подальші операції з ZIP-файлом у пам’яті, такі як надсилання його через мережу або збереження на диску пізніше.

Висновок

Цей підручник продемонстрував, як створити ZIP-файл у пам’яті за допомогою C#. Дотримуючись наведеного плану, ви можете ефективно управляти стисненням файлів у ваших програмах без необхідності створення фізичних файлів. Для більш розширених функцій, таких як витягування ZIP-файлів, ознайомтеся з додатковою документацією Aspose.ZIP.

 Українська