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

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

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

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

  • Виконання результатів:- Уникає перевершення диска I/O, що робить процес швидшим.

  • Тимчасове зберігання:- З’єднує файли в пам’ять для швидкого доступу та обробки.

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

Докладніше: Підготовка навколишнього середовища

  • Налаштування Visual Studio або будь-якого сумісного .NET IDE.
  • Налаштуйте Aspose.ZIP з NuGet Package Manager.

Крок за кроком Посібник для створення 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())
    {
        // 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.

 Українська