Class SevenZipArchive

Class SevenZipArchive

Namespace: Aspose.Zip.SevenZip
Assembly: Aspose.Zip.dll (25.1.0)

Diese Klasse repräsentiert eine 7z-Archivdatei. Verwenden Sie sie, um 7z-Archive zu erstellen und zu extrahieren.

public class SevenZipArchive : IArchive, IDisposable

Vererbung

objectSevenZipArchive

Implementiert

IArchive, IDisposable

Vererbte Mitglieder

object.GetType(), object.MemberwiseClone(), object.ToString(), object.Equals(object?), object.Equals(object?, object?), object.ReferenceEquals(object?, object?), object.GetHashCode()

Konstruktoren

SevenZipArchive(SevenZipEntrySettings)

Initialisiert eine neue Instanz der Aspose.Zip.SevenZip.SevenZipArchive-Klasse mit optionalen Einstellungen für ihre Einträge.

public SevenZipArchive(SevenZipEntrySettings newEntrySettings = null)

Parameter

newEntrySettings SevenZipEntrySettings

Kompressions- und Verschlüsselungseinstellungen, die für neu hinzugefügte Aspose.Zip.SevenZip.SevenZipArchiveEntry-Elemente verwendet werden. Wenn nicht angegeben, wird LZMA-Kompression ohne Verschlüsselung verwendet.

Beispiele

Das folgende Beispiel zeigt, wie man eine einzelne Datei mit den Standardeinstellungen komprimiert: LZMA-Kompression ohne Verschlüsselung.

using (FileStream sevenZipFile = File.Open("archive.7z", FileMode.Create))
{
    using (var archive = new SevenZipArchive())
    {
        archive.CreateEntry("data.bin", "file.dat");
        archive.Save(sevenZipFile);
    }
}

SevenZipArchive(Stream, string)

Initialisiert eine neue Instanz der Aspose.Zip.SevenZip.SevenZipArchive-Klasse und erstellt eine Eintragsliste, die aus dem Archiv extrahiert werden kann.

public SevenZipArchive(Stream sourceStream, string password = null)

Parameter

sourceStream Stream

Die Quelle des Archivs.

password string

Optionales Passwort zur Entschlüsselung. Wenn Dateinamen verschlüsselt sind, muss es vorhanden sein.

Beispiele

using (SevenZipArchive archive = new SevenZipArchive(File.OpenRead("archive.7z")))
{
    archive.ExtractToDirectory("C:\\extracted");
}

Bemerkungen

Dieser Konstruktor dekomprimiert keinen Eintrag. Siehe die Methode Aspose.Zip.SevenZip.SevenZipArchive.ExtractToDirectory(System.String,System.String) zum Dekomprimieren.

Ausnahmen

ArgumentException

sourceStream ist nicht suchbar.

ArgumentNullException

sourceStream ist null.

NotImplementedException

Das Archiv enthält mehr als einen Kodierer. Derzeit wird nur LZMA-Kompression unterstützt.

SevenZipArchive(string, string)

Initialisiert eine neue Instanz der Aspose.Zip.SevenZip.SevenZipArchive-Klasse und erstellt eine Eintragsliste, die aus dem Archiv extrahiert werden kann.

public SevenZipArchive(string path, string password = null)

Parameter

path string

Der vollständig qualifizierte oder relative Pfad zur Archivdatei.

password string

Optionales Passwort zur Entschlüsselung. Wenn Dateinamen verschlüsselt sind, muss es vorhanden sein.

Beispiele

using (SevenZipArchive archive = new SevenZipArchive("archive.7z"))
{
    archive.ExtractToDirectory("C:\\extracted");
}

Bemerkungen

Dieser Konstruktor dekomprimiert keinen Eintrag. Siehe die Methode Aspose.Zip.SevenZip.SevenZipArchive.ExtractToDirectory(System.String,System.String) zum Dekomprimieren.

Ausnahmen

ArgumentNullException

path ist null.

SecurityException

Der Aufrufer hat nicht die erforderlichen Berechtigungen für den Zugriff.

ArgumentException

Der path ist leer, enthält nur Leerzeichen oder enthält ungültige Zeichen.

UnauthorizedAccessException

Zugriff auf die Datei path ist verweigert.

PathTooLongException

Der angegebene path, Dateiname oder beides überschreiten die vom System definierten maximalen Längen. Zum Beispiel müssen auf Windows-basierten Plattformen Pfade kürzer als 248 Zeichen und Dateinamen kürzer als 260 Zeichen sein.

NotSupportedException

Die Datei am path enthält einen Doppelpunkt (:) in der Mitte des Strings.

FileNotFoundException

Die Datei wurde nicht gefunden.

DirectoryNotFoundException

Der angegebene Pfad ist ungültig, z. B. wenn er sich auf einem nicht zugeordneten Laufwerk befindet.

IOException

Die Datei ist bereits geöffnet.

SevenZipArchive(string[], string)

Initialisiert eine neue Instanz der Aspose.Zip.SevenZip.SevenZipArchive-Klasse aus einem mehrteiligen 7z-Archiv und erstellt eine Eintragsliste, die aus dem Archiv extrahiert werden kann.

public SevenZipArchive(string[] parts, string password = null)

Parameter

parts string[]

Pfade zu jedem Segment des mehrteiligen 7z-Archivs in der richtigen Reihenfolge.

password string

Optionales Passwort zur Entschlüsselung. Wenn Dateinamen verschlüsselt sind, muss es vorhanden sein.

Beispiele

using (SevenZipArchive archive = new SevenZipArchive(new string[] { "multi.7z.001", "multi.7z.002", "multi.7z.003" }))
{
    archive.ExtractToDirectory("C:\\extracted");
}

Ausnahmen

ArgumentNullException

parts ist null.

ArgumentException

parts hat keine Einträge.

SecurityException

Der Aufrufer hat nicht die erforderlichen Berechtigungen für den Zugriff.

ArgumentException

Der Pfad zu einer Datei ist leer, enthält nur Leerzeichen oder enthält ungültige Zeichen.

UnauthorizedAccessException

Zugriff auf eine Datei ist verweigert.

PathTooLongException

Der angegebene Pfad zu einem Teil, Dateiname oder beides überschreiten die vom System definierten maximalen Längen. Zum Beispiel müssen auf Windows-basierten Plattformen Pfade kürzer als 248 Zeichen und Dateinamen kürzer als 260 Zeichen sein.

NotSupportedException

Die Datei am Pfad enthält einen Doppelpunkt (:) in der Mitte des Strings.

Eigenschaften

Entries

Erhält die Einträge des Typs Aspose.Zip.SevenZip.SevenZipArchiveEntry, die das Archiv bilden.

public ReadOnlyCollection<sevenziparchiveentry> Entries { get; }

Eigenschaftswert

ReadOnlyCollection<SevenZipArchiveEntry&gt;

NewEntrySettings

Kompressions- und Verschlüsselungseinstellungen, die für neu hinzugefügte Aspose.Zip.SevenZip.SevenZipArchiveEntry-Elemente verwendet werden.

public SevenZipEntrySettings NewEntrySettings { get; }

Eigenschaftswert

SevenZipEntrySettings

Methoden

CreateEntries(DirectoryInfo, bool)

Fügt dem Archiv alle Dateien und Verzeichnisse rekursiv im angegebenen Verzeichnis hinzu.

public SevenZipArchive CreateEntries(DirectoryInfo directory, bool includeRootDirectory = true)

Parameter

directory DirectoryInfo

Verzeichnis zum Komprimieren.

includeRootDirectory bool

Gibt an, ob das Wurzelverzeichnis selbst einbezogen werden soll oder nicht.

Rückgabewert

SevenZipArchive

Das Archiv mit den erstellten Einträgen.

Beispiele

using (SevenZipArchive archive = new SevenZipArchive())
{
    DirectoryInfo folder = new DirectoryInfo("C:\\folder");
    archive.CreateEntries(folder);
    archive.Save("folder.7z");
}

Ausnahmen

DirectoryNotFoundException

Der Pfad zu directory ist ungültig, z. B. wenn er sich auf einem nicht zugeordneten Laufwerk befindet.

SecurityException

Der Aufrufer hat nicht die erforderlichen Berechtigungen für den Zugriff auf directory.

CreateEntries(string, bool)

Fügt dem Archiv alle Dateien und Verzeichnisse rekursiv im angegebenen Verzeichnis hinzu.

public SevenZipArchive CreateEntries(string sourceDirectory, bool includeRootDirectory = true)

Parameter

sourceDirectory string

Verzeichnis zum Komprimieren.

includeRootDirectory bool

Gibt an, ob das Wurzelverzeichnis selbst einbezogen werden soll oder nicht.

Rückgabewert

SevenZipArchive

Das Archiv mit den erstellten Einträgen.

Beispiele

Erstellen Sie ein 7z-Archiv mit LZMA2-Kompression.

using (SevenZipArchive archive = new SevenZipArchive(new SevenZipEntrySettings(new SevenZipLZMACompressionSettings())))
{
    archive.CreateEntries("C:\\folder");
    archive.Save("folder.7z");
}

CreateEntry(string, FileInfo, bool, SevenZipEntrySettings)

Erstellt einen einzelnen Eintrag im Archiv.

public SevenZipArchiveEntry CreateEntry(string name, FileInfo fileInfo, bool openImmediately = false, SevenZipEntrySettings newEntrySettings = null)

Parameter

name string

Der Name des Eintrags.

fileInfo FileInfo

Die Metadaten der zu komprimierenden Datei.

openImmediately bool

Wahr, wenn die Datei sofort geöffnet werden soll, andernfalls wird die Datei beim Speichern des Archivs geöffnet.

newEntrySettings SevenZipEntrySettings

Kompressions- und Verschlüsselungseinstellungen, die für das hinzugefügte Aspose.Zip.SevenZip.SevenZipArchiveEntry-Element verwendet werden.

Rückgabewert

SevenZipArchiveEntry

Instanz des Seven Zip-Eintrags.

Beispiele

Erstellen Sie ein Archiv mit Einträgen, die jeweils mit unterschiedlichen Passwörtern verschlüsselt sind.

using (FileStream sevenZipFile = File.Open("archive.7z", FileMode.Create))
{
    FileInfo fi1 = new FileInfo("data1.bin");
    FileInfo fi2 = new FileInfo("data2.bin");
    FileInfo fi3 = new FileInfo("data3.bin");
    using (var archive = new SevenZipArchive())
    {
        archive.CreateEntry("entry1.bin", fi1, false, new SevenZipEntrySettings(new SevenZipStoreCompressionSettings(), new SevenZipAESEncryptionSettings("test1")));
        archive.CreateEntry("entry2.bin", fi2, false, new SevenZipEntrySettings(new SevenZipStoreCompressionSettings(), new SevenZipAESEncryptionSettings("test2")));
        archive.CreateEntry("entry3.bin", fi3, false, new SevenZipEntrySettings(new SevenZipStoreCompressionSettings(), new SevenZipAESEncryptionSettings("test3")));
        archive.Save(sevenZipFile);
    }
}

Bemerkungen

Der Eintragsname wird ausschließlich im name-Parameter festgelegt. Der Dateiname, der im fileInfo-Parameter angegeben ist, hat keinen Einfluss auf den Eintragsnamen.

Wenn die Datei sofort mit dem openImmediately-Parameter geöffnet wird, wird sie blockiert, bis das Archiv gespeichert ist.

Ausnahmen

UnauthorizedAccessException

fileInfo ist schreibgeschützt oder ein Verzeichnis.

DirectoryNotFoundException

Der angegebene Pfad ist ungültig, z. B. wenn er sich auf einem nicht zugeordneten Laufwerk befindet.

IOException

Die Datei ist bereits geöffnet.

CreateEntry(string, Stream, SevenZipEntrySettings, FileSystemInfo)

Erstellt einen einzelnen Eintrag im Archiv.

public SevenZipArchiveEntry CreateEntry(string name, Stream source, SevenZipEntrySettings newEntrySettings, FileSystemInfo fileInfo)

Parameter

name string

Der Name des Eintrags.

source Stream

Der Eingabestream für den Eintrag.

newEntrySettings SevenZipEntrySettings

Kompressions- und Verschlüsselungseinstellungen, die für das hinzugefügte Aspose.Zip.SevenZip.SevenZipArchiveEntry-Element verwendet werden.

fileInfo FileSystemInfo

Die Metadaten der zu komprimierenden Datei oder des Ordners.

Rückgabewert

SevenZipArchiveEntry

Instanz des SevenZip-Eintrags.

Beispiele

Erstellen Sie ein Archiv mit einem LZMA2-komprimierten, verschlüsselten Eintrag.

using (FileStream sevenZipFile = File.Open("archive.7z", FileMode.Create))
{
    using (var archive = new SevenZipArchive())
    {
        archive.CreateEntry("entry1.bin", new MemoryStream(new byte[] {0x00, 0xFF}), new SevenZipEntrySettings(new SevenZipLZMA2CompressionSettings(), new SevenZipAESEncryptionSettings("test1")), new FileInfo("data1.bin")); 
        archive.Save(sevenZipFile);
    }
}

Bemerkungen

Der Eintragsname wird ausschließlich im name-Parameter festgelegt. Der Dateiname, der im fileInfo-Parameter angegeben ist, hat keinen Einfluss auf den Eintragsnamen.

fileInfo kann auf System.IO.DirectoryInfo verweisen, wenn der Eintrag ein Verzeichnis ist.

Ausnahmen

InvalidOperationException

Sowohl source als auch fileInfo sind null oder source ist null und fileInfo steht für ein Verzeichnis.

CreateEntry(string, Stream, SevenZipEntrySettings)

Erstellt einen einzelnen Eintrag im Archiv.

public SevenZipArchiveEntry CreateEntry(string name, Stream source, SevenZipEntrySettings newEntrySettings = null)

Parameter

name string

Der Name des Eintrags.

source Stream

Der Eingabestream für den Eintrag.

newEntrySettings SevenZipEntrySettings

Kompressions- und Verschlüsselungseinstellungen, die für das hinzugefügte Aspose.Zip.SevenZip.SevenZipArchiveEntry-Element verwendet werden.

Rückgabewert

SevenZipArchiveEntry

Instanz des Zip-Eintrags.

Beispiele

Erstellen Sie ein 7z-Archiv mit LZMA2-Kompression und Verschlüsselung aller Einträge.

using (var archive = new SevenZipArchive(new SevenZipEntrySettings(new SevenZipLZMA2CompressionSettings(), new SevenZipAESEncryptionSettings("p@s$"))))
{
    archive.CreateEntry("data.bin", new MemoryStream(new byte[] {0x00, 0xFF} ));
    archive.Save("archive.7z");
}

CreateEntry(string, string, bool, SevenZipEntrySettings)

Erstellt einen einzelnen Eintrag im Archiv.

public SevenZipArchiveEntry CreateEntry(string name, string path, bool openImmediately = false, SevenZipEntrySettings newEntrySettings = null)

Parameter

name string

Der Name des Eintrags.

path string

Der vollständig qualifizierte Name der neuen Datei oder der relative Dateiname, der komprimiert werden soll.

openImmediately bool

Wahr, wenn die Datei sofort geöffnet werden soll, andernfalls wird die Datei beim Speichern des Archivs geöffnet.

newEntrySettings SevenZipEntrySettings

Kompressions- und Verschlüsselungseinstellungen, die für das hinzugefügte Aspose.Zip.SevenZip.SevenZipArchiveEntry-Element verwendet werden.

Rückgabewert

SevenZipArchiveEntry

Instanz des Zip-Eintrags.

Beispiele

using (FileStream sevenZipFile = File.Open("archive.7z", FileMode.Create))
{
    using (var archive = new SevenZipArchive(new SevenZipEntrySettings(new SevenZipLZMA2CompressionSettings())))
    {
        archive.CreateEntry("data.bin", "file.dat");
        archive.Save(sevenZipFile);
    }
}

Bemerkungen

Der Eintragsname wird ausschließlich im name-Parameter festgelegt. Der Dateiname, der im path-Parameter angegeben ist, hat keinen Einfluss auf den Eintragsnamen.

Wenn die Datei sofort mit dem openImmediately-Parameter geöffnet wird, wird sie blockiert, bis das Archiv gespeichert ist.

Ausnahmen

ArgumentNullException

path ist null.

SecurityException

Der Aufrufer hat nicht die erforderlichen Berechtigungen für den Zugriff.

ArgumentException

Der path ist leer, enthält nur Leerzeichen oder enthält ungültige Zeichen.

UnauthorizedAccessException

Zugriff auf die Datei path ist verweigert.

PathTooLongException

Der angegebene path, Dateiname oder beides überschreiten die vom System definierten maximalen Längen. Zum Beispiel müssen auf Windows-basierten Plattformen Pfade kürzer als 248 Zeichen und Dateinamen kürzer als 260 Zeichen sein.

NotSupportedException

Die Datei am path enthält einen Doppelpunkt (:) in der Mitte des Strings.

Dispose()

Führt anwendungsdefinierte Aufgaben aus, die mit dem Freigeben, Freisetzen oder Zurücksetzen nicht verwalteter Ressourcen verbunden sind.

public void Dispose()

Dispose(bool)

Führt anwendungsdefinierte Aufgaben aus, die mit dem Freigeben, Freisetzen oder Zurücksetzen nicht verwalteter Ressourcen verbunden sind.

protected virtual void Dispose(bool disposing)

Parameter

disposing bool

Ob verwaltete Ressourcen freigegeben werden sollen.

ExtractToDirectory(string, string)

Extrahiert alle Dateien im Archiv in das angegebene Verzeichnis.

public void ExtractToDirectory(string destinationDirectory, string password = null)

Parameter

destinationDirectory string

Der Pfad zum Verzeichnis, in dem die extrahierten Dateien abgelegt werden sollen.

password string

Optionales Passwort zur Entschlüsselung des Inhalts.

Beispiele

using (var archive = new SevenZipArchive("archive.7z")) 
{ 
   archive.ExtractToDirectory("C:\\extracted");
}

Bemerkungen

Wenn das Verzeichnis nicht existiert, wird es erstellt.

password wird nur zur Entschlüsselung des Inhalts verwendet. Wenn Dateinamen verschlüsselt sind, geben Sie das Passwort im Konstruktor Aspose.Zip.SevenZip.SevenZipArchive.#ctor(System.String,System.String) oder Aspose.Zip.SevenZip.SevenZipArchive.#ctor(System.IO.Stream,System.String) an.

Ausnahmen

ArgumentNullException

destinationDirectory ist null.

PathTooLongException

Der angegebene Pfad, Dateiname oder beides überschreiten die vom System definierten maximalen Längen. Zum Beispiel müssen auf Windows-basierten Plattformen Pfade kürzer als 248 Zeichen und Dateinamen kürzer als 260 Zeichen sein.

SecurityException

Der Aufrufer hat nicht die erforderlichen Berechtigungen für den Zugriff auf das vorhandene Verzeichnis.

NotSupportedException

Wenn das Verzeichnis nicht existiert, enthält der Pfad ein Doppelpunktzeichen (:) das nicht Teil eines Laufwerkslabels (“C:") ist.

ArgumentException

destinationDirectory ist eine Nullzeichenfolge, enthält nur Leerzeichen oder enthält ein oder mehrere ungültige Zeichen. Sie können ungültige Zeichen abfragen, indem Sie die Methode System.IO.Path.GetInvalidPathChars verwenden. -oder- Der Pfad ist mit oder enthält nur ein Doppelpunktzeichen (:).

IOException

Das Verzeichnis, das durch den Pfad angegeben wird, ist eine Datei. -oder- Der Netzwerkname ist nicht bekannt.

InvalidDataException

Das Archiv ist beschädigt.

Save(Stream)

Speichert das 7z-Archiv im angegebenen Stream.

public void Save(Stream output)

Parameter

output Stream

Zielstream.

Beispiele

using (FileStream sevenZipFile = File.Open("archive.7z", FileMode.Create))
{
  using (FileStream source = File.Open("data.bin", FileMode.Open, FileAccess.Read))
  {
    using (var archive = new SevenZipArchive())
    {
      archive.CreateEntry("data", source);
      archive.Save(sevenZipFile);
    }
  }
}

Bemerkungen

output muss suchbar sein.

Ausnahmen

ArgumentException

output unterstützt kein Suchen.

ArgumentNullException

output ist null.

InvalidOperationException

Der Encoder konnte die Daten nicht komprimieren.

Save(string)

Speichert das Archiv in der angegebenen Zieldatei.

public void Save(string destinationFileName)

Parameter

destinationFileName string

Der Pfad des zu erstellenden Archivs. Wenn der angegebene Dateiname auf eine vorhandene Datei verweist, wird diese überschrieben.

Beispiele

using (FileStream source = File.Open("data.bin", FileMode.Open, FileAccess.Read))
{
   using (var archive = new SevenZipArchive(new SevenZipEntrySettings(new SevenZipLZMACompressionSettings())))
   {
      archive.CreateEntry("data", source);
      archive.Save("archive.7z");
   }
}

Bemerkungen

Es ist möglich, ein Archiv im selben Pfad zu speichern, von dem es geladen wurde. Dies wird jedoch nicht empfohlen, da dieser Ansatz das Kopieren in eine temporäre Datei verwendet.

Ausnahmen

ArgumentNullException

destinationFileName ist null.

SecurityException

Der Aufrufer hat nicht die erforderlichen Berechtigungen für den Zugriff.

ArgumentException

Der destinationFileName ist leer, enthält nur Leerzeichen oder enthält ungültige Zeichen.

UnauthorizedAccessException

Zugriff auf die Datei destinationFileName ist verweigert.

PathTooLongException

Der angegebene destinationFileName, Dateiname oder beides überschreiten die vom System definierten maximalen Längen. Zum Beispiel müssen auf Windows-basierten Plattformen Pfade kürzer als 248 Zeichen und Dateinamen kürzer als 260 Zeichen sein.

NotSupportedException

Die Datei am destinationFileName enthält einen Doppelpunkt (:) in der Mitte des Strings.

SaveSplit(string, SplitSevenZipArchiveSaveOptions)

Speichert das mehrteilige Archiv im angegebenen Zielverzeichnis.

public void SaveSplit(string destinationDirectory, SplitSevenZipArchiveSaveOptions options)

Parameter

destinationDirectory string

Der Pfad zum Verzeichnis, in dem Archivsegmente erstellt werden sollen.

options SplitSevenZipArchiveSaveOptions

Optionen zum Speichern des Archivs, einschließlich des Dateinamens.

Beispiele

using (SevenZipArchive archive = new SevenZipArchive())
{
    archive.CreateEntry("entry.bin", "data.bin");
    archive.SaveSplit(@"C:\Folder",  new SplitSevenZipArchiveSaveOptions("volume", 65536));
}

Bemerkungen

Diese Methode erstellt mehrere (n) Dateien mit den Namen filename.7z.001, filename.7z.002, ..., filename.7z.(n).

Kann ein vorhandenes Archiv nicht mehrteilig machen.

Ausnahmen

InvalidOperationException

Dieses Archiv wurde aus einer vorhandenen Quelle geöffnet.

ArgumentNullException

destinationDirectory ist null.

SecurityException

Der Aufrufer hat nicht die erforderlichen Berechtigungen für den Zugriff auf das Verzeichnis.

ArgumentException

destinationDirectory enthält ungültige Zeichen wie “, >, < oder |.

PathTooLongException

Der angegebene Pfad überschreitet die vom System definierten maximalen Längen.

 Deutsch