Archive.Archive

Archive(ArchiveEntrySettings)

Initialisiert eine neue Instanz vonArchive Klasse mit optionalen Einstellungen für ihre Einträge.

public Archive(ArchiveEntrySettings newEntrySettings = null)
ParameterTypBeschreibung
newEntrySettingsArchiveEntrySettingsKomprimierungs- und Verschlüsselungseinstellungen, die für neu hinzugefügte verwendet werdenArchiveEntry items. Wenn nicht angegeben, würde die häufigste Deflate-Komprimierung ohne Verschlüsselung verwendet werden.

Beispiele

Das folgende Beispiel zeigt, wie eine einzelne Datei mit Standardeinstellungen komprimiert wird.

using (FileStream zipFile = File.Open("archive.zip", FileMode.Create))
{
    using (var archive = new Archive())
    {
        archive.CreateEntry("data.bin", "file.dat");
        archive.Save(zipFile);
    }
}

Siehe auch


Archive(Stream, ArchiveLoadOptions, ArchiveEntrySettings)

Initialisiert eine neue Instanz vonArchive Klasse und Liste der zusammengesetzten Einträge können aus dem Archiv extrahiert werden.

public Archive(Stream sourceStream, ArchiveLoadOptions loadOptions = null, 
    ArchiveEntrySettings newEntrySettings = null)
ParameterTypBeschreibung
sourceStreamStreamDie Quelle des Archivs.
loadOptionsArchiveLoadOptionsOptionen zum Laden bestehender Archive mit.
newEntrySettingsArchiveEntrySettingsKomprimierungs- und Verschlüsselungseinstellungen, die für neu hinzugefügte verwendet werdenArchiveEntry items. Wenn nicht angegeben, würde die häufigste Deflate-Komprimierung ohne Verschlüsselung verwendet werden.

Ausnahmen

AusnahmeBedingung
ArgumentExceptionsourceStream ist nicht auffindbar.
InvalidDataExceptionDer Verschlüsselungsheader für AES widerspricht der WinZip-Komprimierungsmethode.

Bemerkungen

Dieser Konstruktor dekomprimiert keinen Eintrag. SehenOpen Methode zum Dekomprimieren.

Beispiele

Das folgende Beispiel extrahiert ein verschlüsseltes Archiv und dekomprimiert dann den ersten Eintrag in aMemoryStream.

var fs = File.OpenRead("encrypted.zip");
var extracted = new MemoryStream();
using (Archive archive = new Archive(fs, new ArchiveLoadOptions() { DecryptionPassword = "p@s$" }))
{
    using (var decompressed = archive.Entries[0].Open())
    {
        byte[] b = new byte[8192];
        int bytesRead;
        while (0 < (bytesRead = decompressed.Read(b, 0, b.Length)))
            extracted.Write(b, 0, bytesRead);
    }
}

Siehe auch


Archive(string, ArchiveLoadOptions, ArchiveEntrySettings)

Initialisiert eine neue Instanz vonArchive Klasse und Liste der zusammengesetzten Einträge können aus dem Archiv extrahiert werden.

public Archive(string path, ArchiveLoadOptions loadOptions = null, 
    ArchiveEntrySettings newEntrySettings = null)
ParameterTypBeschreibung
pathStringDer vollständig qualifizierte oder der relative Pfad zur Archivdatei.
loadOptionsArchiveLoadOptionsOptionen zum Laden bestehender Archive mit.
newEntrySettingsArchiveEntrySettingsKomprimierungs- und Verschlüsselungseinstellungen, die für neu hinzugefügte verwendet werdenArchiveEntry items. Wenn nicht angegeben, würde die häufigste Deflate-Komprimierung ohne Verschlüsselung verwendet werden.

Ausnahmen

AusnahmeBedingung
ArgumentNullExceptionpath ist Null.
SecurityExceptionDer Anrufer verfügt nicht über die erforderliche Zugriffsberechtigung.
ArgumentExceptionDerpath leer ist, nur Leerzeichen enthält oder ungültige Zeichen enthält.
UnauthorizedAccessExceptionZugriff auf Dateipath ist abgelehnt.
PathTooLongExceptionDie angegebenepath, Dateiname oder beide überschreiten die vom System definierte maximale Länge. Beispielsweise müssen auf Windows-basierten Plattformen Pfade weniger als 248 Zeichen und Dateinamen weniger als 260 Zeichen umfassen.
NotSupportedExceptionDatei unterpath enthält einen Doppelpunkt (:) in der Mitte der Zeichenfolge.

Bemerkungen

Dieser Konstruktor dekomprimiert keinen Eintrag. SehenOpen Methode zum Dekomprimieren.

Beispiele

Das folgende Beispiel extrahiert ein verschlüsseltes Archiv und dekomprimiert dann den ersten Eintrag in aMemoryStream.

var extracted = new MemoryStream();
using (Archive archive = new Archive("encrypted.zip", new ArchiveLoadOptions() { DecryptionPassword = "p@s$" }))
{
    using (var decompressed = archive.Entries[0].Open())
    {
        byte[] b = new byte[8192];
        int bytesRead;
        while (0 < (bytesRead = decompressed.Read(b, 0, b.Length)))
            extracted.Write(b, 0, bytesRead);
    }
}

Siehe auch