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
Implementiert
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
sourceStream
ist nicht suchbar.
sourceStream
ist null.
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
path
ist null.
Der Aufrufer hat nicht die erforderlichen Berechtigungen für den Zugriff.
Der path
ist leer, enthält nur Leerzeichen oder enthält ungültige Zeichen.
Zugriff auf die Datei path
ist verweigert.
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.
Die Datei am path
enthält einen Doppelpunkt (:) in der Mitte des Strings.
Die Datei wurde nicht gefunden.
Der angegebene Pfad ist ungültig, z. B. wenn er sich auf einem nicht zugeordneten Laufwerk befindet.
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
parts
ist null.
parts
hat keine Einträge.
Der Aufrufer hat nicht die erforderlichen Berechtigungen für den Zugriff.
Der Pfad zu einer Datei ist leer, enthält nur Leerzeichen oder enthält ungültige Zeichen.
Zugriff auf eine Datei ist verweigert.
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.
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>
NewEntrySettings
Kompressions- und Verschlüsselungseinstellungen, die für neu hinzugefügte Aspose.Zip.SevenZip.SevenZipArchiveEntry-Elemente verwendet werden.
public SevenZipEntrySettings NewEntrySettings { get; }
Eigenschaftswert
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
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
Der Pfad zu directory
ist ungültig, z. B. wenn er sich auf einem nicht zugeordneten Laufwerk befindet.
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
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
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
fileInfo
ist schreibgeschützt oder ein Verzeichnis.
Der angegebene Pfad ist ungültig, z. B. wenn er sich auf einem nicht zugeordneten Laufwerk befindet.
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
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
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
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
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
path
ist null.
Der Aufrufer hat nicht die erforderlichen Berechtigungen für den Zugriff.
Der path
ist leer, enthält nur Leerzeichen oder enthält ungültige Zeichen.
Zugriff auf die Datei path
ist verweigert.
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.
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
destinationDirectory
ist null.
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.
Der Aufrufer hat nicht die erforderlichen Berechtigungen für den Zugriff auf das vorhandene Verzeichnis.
Wenn das Verzeichnis nicht existiert, enthält der Pfad ein Doppelpunktzeichen (:) das nicht Teil eines Laufwerkslabels (“C:") ist.
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 (:).
Das Verzeichnis, das durch den Pfad angegeben wird, ist eine Datei. -oder- Der Netzwerkname ist nicht bekannt.
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
output
unterstützt kein Suchen.
output
ist null.
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
destinationFileName
ist null.
Der Aufrufer hat nicht die erforderlichen Berechtigungen für den Zugriff.
Der destinationFileName
ist leer, enthält nur Leerzeichen oder enthält ungültige Zeichen.
Zugriff auf die Datei destinationFileName
ist verweigert.
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.
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
Dieses Archiv wurde aus einer vorhandenen Quelle geöffnet.
destinationDirectory
ist null.
Der Aufrufer hat nicht die erforderlichen Berechtigungen für den Zugriff auf das Verzeichnis.
destinationDirectory
enthält ungültige Zeichen wie “, >, < oder |.
Der angegebene Pfad überschreitet die vom System definierten maximalen Längen.