In diesem Schritt-für-Schritt-Tutorial erfahren Sie, wie Sie in C# eine ZIP-Datei im Arbeitsspeicher erstellen. Sie müssen die folgenden einfachen Schritte ausführen, um ein ZIP-Archiv im Speicher erstellen zu können.
Schritte zum Erstellen einer ZIP-Datei im Arbeitsspeicher in C#
- Fügen Sie Aspose.ZIP for .NET NuGet-Paketverweis zur Lösung hinzu
- Fügen Sie die Aspose.Zip-Anweisung in der Codedatei Program.cs hinzu
- Wenden Sie die Lizenz für die Aspose.ZIP-API mit der Methode License.SetLicense an
- Holen Sie sich einzelne oder alle Dateien aus dem Ordner auf der Festplatte und speichern Sie ihre Pfade in einem String-Array
- Objekt von Archive Class im Speicher erstellen
- Erstellen Sie für jede Datei einen ArchiveEntry-Knoten im ZIP-Archiv
- Speichern oder kopieren Sie die ZIP-Archivinstanz in MemoryStream
Das folgende C#-Codebeispiel kann in Ihrer .NET-Anwendung verwendet werden, um alle Dateien in einem Ordner auf dem Datenträger zu ZIP file format zu komprimieren und dann die ZIP-Datei im Speicher-Stream-Objekt zu speichern.
Code zum Erstellen einer ZIP-Datei im Speicher 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 | |
} | |
} | |
} |
Diese C#-ZIP-Datei in der Speicherkonsolenanwendung erstellen hilft Ihnen also im Wesentlichen dabei, Ordner in das ZIP-Format zu konvertieren und den gesamten Inhalt des Ordners in komprimiertem Format in den Speicher zu schreiben. Anschließend können Sie die ZIP-Datei aus MemoryStream C# neu erstellen und auf der Festplatte speichern. Sobald das Archiv im Dateisystem neu erstellt wurde, können Sie dann ZIP-Datei mit C# extrahieren codieren.