У цьому покроковому посібнику ви дізнаєтеся, як створити файл ZIP у пам’яті на C#. Вам потрібно виконати наступні прості кроки, щоб створити ZIP-архів у пам’яті.
Кроки для створення ZIP-файлу в пам’яті на C#
- Додайте до рішення посилання на пакет Aspose.ZIP for .NET NuGet
- Додайте оператор Aspose.Zip у файл коду Program.cs
- Застосуйте ліцензію на API Aspose.ZIP за допомогою методу License.SetLicense
- Отримайте один або всі файли з папки, розташованої на диску, і збережіть їхні шляхи в масиві рядків
- Створіть об’єкт Archive Class у пам’яті
- Для кожного файлу створіть вузол ArchiveEntry в архіві ZIP
- Збережіть або скопіюйте екземпляр ZIP-архіву в MemoryStream
Наведений нижче приклад коду C# можна використати у вашій програмі .NET, щоб стиснути всі файли в папці на диску до ZIP file format, а потім зберегти ZIP-файл в об’єкті потоку пам’яті.
Код для створення ZIP-файлу в пам’яті на C#
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 | |
} | |
} | |
} |
Таким чином, ця програма C# для створення zip-файлу в консольній програмі пам’яті по суті допоможе вам перетворити папку на формат ZIP і записати весь вміст папки в пам’ять у стисненому форматі. Після цього ви можете повторно створити ZIP-файл із MemoryStream C# і зберегти на диску. Після того, як архів буде повторно створено у файловій системі, ви можете видобути файл ZIP за допомогою C# кодувати.