In deze stapsgewijze zelfstudie leert u hoe u een ZIP-bestand in het geheugen in C# maakt. U moet de volgende eenvoudige stappen uitvoeren om een ZIP-archief in het geheugen te kunnen maken.
Stappen om een ZIP-bestand in het geheugen te maken in C#
- Voeg Aspose.ZIP for .NET NuGet-pakketreferentie toe aan oplossing
- Voeg toe met behulp van de Aspose.Zip-instructie in het Program.cs-codebestand
- Pas een licentie toe voor Aspose.ZIP API met behulp van de License.SetLicense-methode
- Haal enkele of alle bestanden uit de map op schijf en sla hun paden op in stringarray
- Maak een object van Archive Class in het geheugen
- Maak voor elk bestand een ArchiveEntry-knooppunt in ZIP-archief
- Bewaar of kopieer ZIP Archive-instantie naar MemoryStream
Het volgende C#-codevoorbeeld kan in uw .NET-toepassing worden gebruikt om alle bestanden in een map op schijf te comprimeren naar ZIP file format en vervolgens het ZIP-bestand op te slaan in het geheugenstroomobject.
Code om ZIP-bestand in het geheugen te maken in 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 | |
} | |
} | |
} |
Dus deze C#-aanmaak-zip-bestand in de geheugenconsole-toepassing zal u in wezen helpen om de map naar ZIP-indeling te converteren en de volledige inhoud van de map in het geheugen in gecomprimeerd formaat te schrijven. Daarna kunt u het ZIP-bestand opnieuw maken vanuit MemoryStream C# en op schijf opslaan. Zodra het archief opnieuw is aangemaakt op het bestandssysteem, kunt u ZIP-bestand uitpakken met C# coderen.