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

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

Шаги по созданию ZIP-файла в памяти на С#

  1. Добавьте Aspose.ZIP for .NET ссылку на пакет NuGet в решение.
  2. Добавьте оператор Aspose.Zip в файл кода Program.cs.
  3. Примените лицензию для Aspose.ZIP API, используя метод License.SetLicense.
  4. Получите один или все файлы из папки, расположенной на диске, и сохраните их пути в массиве строк.
  5. Создайте объект Archive Class в памяти.
  6. Для каждого файла создайте узел ArchiveEntry в ZIP-архиве.
  7. Сохраните или скопируйте экземпляр ZIP-архива в MemoryStream.

Следующий пример кода C# можно использовать в приложении .NET, чтобы сжать все файлы в папке на диске в ZIP file format, а затем сохранить ZIP-файл в объекте потока памяти.

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

using System.IO;
// Following namespace is required to Create ZIP File in Memory
using Aspose.Zip;
namespace CreateZipFileInMemory
{
class Program
{
static void Main(string[] args)
{
License AsposeZipLicense = new License();
// Load license from file system into memory stream
using (MemoryStream stream = new MemoryStream(File.ReadAllBytes("path to license.lic")))
{
// Set license prior to creating ZIP file in memory
AsposeZipLicense.SetLicense(stream);
}
#region C# code to create ZIP archive in memory
// Create MemoryStream instance
using (MemoryStream zipFileInMemory = new MemoryStream())
{
// Create empty Archive object for ZIP file
using (Aspose.Zip.Archive zipArchive = new Aspose.Zip.Archive())
{
// Get all files from a Folder and store their paths in string Array
string[] filesArray = Directory.GetFiles("ZIP all Files\\", "*.*", SearchOption.TopDirectoryOnly);
// Loop through the Array and create an ArchiveEntry against each file within the ZIP Archive
foreach (string fileDiskPath in filesArray)
{
string[] folders = fileDiskPath.Split(new char[] { '\\' });
string fileName = folders[folders.Length - 1];
zipArchive.CreateEntry(fileName, fileDiskPath);
}
// Call Save method to create ZIP Archive in memory
zipArchive.Save(zipFileInMemory);
}
}
#endregion
}
}
}

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

 Русский