Class Archive
Der Name: Aspose.Zip Versammlung: Aspose.Zip.dll (25.5.0)
Diese Klasse repräsentiert eine zip-Archivdatei. Verwenden Sie es, um zu komponieren, zu extrahieren oder zu aktualisieren zip archiven.
public class Archive : IArchive, IDisposableInheritance
Implements
Vererbte Mitglieder
object.GetType() , object.MemberwiseClone() , object.ToString() , object.Equals(object?) , object.Equals(object?, object?) , object.ReferenceEquals(object?, object?) , object.GetHashCode()
Constructors
Archive(ArchiveEntrySettings)
Initialisiert eine neue Instanz der Aspose.Zip.Archive-Klasse mit optionalen Einstellungen für seine Einträge.
public Archive(ArchiveEntrySettings newEntrySettings = null)Parameters
newEntrySettings ArchiveEntrySettings
Kompression und Verschlüsselung Einstellungen für neu hinzugefügt Aspose.Zip.ArchiveEntry Elemente.Wenn nicht angegeben, wird die häufigste Deflate-Kompression ohne Verschlüsselung verwendet.
Examples
Das folgende Beispiel zeigt, wie man eine einzige Datei mit standardmäßigen Einstellungen komprimiert.
using (FileStream zipFile = File.Open("archive.zip", FileMode.Create))
{
using (var archive = new Archive())
{
archive.CreateEntry("data.bin", "file.dat");
archive.Save(zipFile);
}
}Archive(Stream, ArchiveLoadOptions, ArchiveEntrySettings)
Initialisiert eine neue Instanz der Aspose.Zip.Archive-Klasse und komponiert eine Eingabeliste, die aus dem Archiv extrahiert werden kann.
public Archive(Stream sourceStream, ArchiveLoadOptions loadOptions = null, ArchiveEntrySettings newEntrySettings = null)Parameters
sourceStream Stream
Die Quelle des Archivs.
loadOptions ArchiveLoadOptions
Die Optionen, bestehende Archiv mit zu laden.
newEntrySettings ArchiveEntrySettings
Kompression und Verschlüsselung Einstellungen für neu hinzugefügt Aspose.Zip.ArchiveEntry Elemente.Wenn nicht angegeben, wird die häufigste Deflate-Kompression ohne Verschlüsselung verwendet.
Examples
Das folgende Beispiel extrahiert ein verschlüsseltes Archiv und dekomprimiert dann den ersten Eingang in eine.
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);
}
}Remarks
Dieser Konstruktor dekomprimiert keine Einträge. siehe Aspose.Zip.ArchiveEntry.Open(System.String) Methode zur dekomprimierung.
Exceptions
sourceStream’ is not seekable.
Die Verschlüsselungsheader für AES widerspricht der WinZip Kompression Methode.
Archive(String, ArchiveLoadOptions, ArchiveEntrySettings)
Initialisiert eine neue Instanz der Aspose.Zip.Archive-Klasse und komponiert eine Eingabeliste, die aus dem Archiv extrahiert werden kann.
public Archive(string path, ArchiveLoadOptions loadOptions = null, ArchiveEntrySettings newEntrySettings = null)Parameters
path string
Die voll qualifizierte oder die relative Route zum Archivdatei.
loadOptions ArchiveLoadOptions
Die Optionen, bestehende Archiv mit zu laden.
newEntrySettings ArchiveEntrySettings
Kompression und Verschlüsselung Einstellungen für neu hinzugefügt Aspose.Zip.ArchiveEntry Elemente.Wenn nicht angegeben, wird die häufigste Deflate-Kompression ohne Verschlüsselung verwendet.
Examples
Das folgende Beispiel extrahiert ein verschlüsseltes Archiv und dekomprimiert dann den ersten Eingang in eine.
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);
}
}Remarks
Dieser Konstruktor dekomprimiert keine Einträge. siehe Aspose.Zip.ArchiveEntry.Open(System.String) Methode zur dekomprimierung.
Exceptions
path’ is null.
Der Anrufgeber hat nicht die erforderliche Erlaubnis für den Zugang.
Die path’ ist leer, enthält nur weiße Räume oder enthält ungültige Zeichen.
Der Zugriff auf die Datei path" wird abgelehnt.
Die angegebenen path’, Dateinamen, oder beide überschreiten die Systemdefinierte maximale Länge. Zum Beispiel auf Windows-basierten Plattformen müssen die Paths weniger als 248 Zeichen und Dateinamen weniger als 260 Zeichen sein.
Die Datei bei path’ enthält eine Kolonne (:) in der Mitte der Zeile.
Die Datei ist nicht gefunden.
Der angegebenen Weg ist ungültig, z. B. auf einem unmapped Drive.
Die Datei ist bereits geöffnet.
Die Datei ist korrupt.
Archive(String und String[][], ArchiveLoadOptions)
Initialisiert eine neue Instanz der Aspose.Zip.Archive-Klasse aus dem Multi-Volume-Zip-Archiv und komponiert eine Eingabe-Liste, die aus dem Archiv extrahiert werden kann.
public Archive(string mainSegment, string[] segmentsInOrder, ArchiveLoadOptions loadOptions = null)Parameters
mainSegment string
Der Weg zum letzten Segment des Mehrvolumen-Archives mit dem zentralen Katalog.
Normalerweise hat dieses Segment *.zip-Erweiterung und kleiner als andere.
segmentsInOrder string
[][]
Wege zu jedem Segment, aber der letzte von mehrvolumen Zip-Archiv, die die Bestellung respektiert.
Normalerweise nennen sie filename.z01, filename.z02, …, filename.z(n-1).
loadOptions ArchiveLoadOptions
Die Optionen, bestehende Archiv mit zu laden.
Examples
Dieses Muster extrahiert in ein Katalog ein Archiv von drei Segmenten.
using (Archive a = new Archive("archive.zip", new string[] { "archive.z01", "archive.z02" }))
{
a.ExtractToDirectory("destination");
}Exceptions
Sie können ZIP-Header nicht laden, da die bereitgestellten Dateien korrupt sind.
Properties
Entries
Er bekommt Beiträge von Aspose.Zip.ArchiveEntry Typ, der das Archiv darstellt.
public ReadOnlyCollection<archiveentry> Entries { get; }Eigentumswert
ReadOnlyCollection &undlt; ArchiveEntry >
NewEntrySettings
Kompression und Verschlüsselung Einstellungen für neu hinzugefügt Aspose.Zip.ArchiveEntry Elemente.
public ArchiveEntrySettings NewEntrySettings { get; }Eigentumswert
Methods
CreateEntries(VerzeichnisInfo, Bool)
Add to the archive all files and directories recurrently in the given directory.
public Archive CreateEntries(DirectoryInfo directory, bool includeRootDirectory = true)Parameters
directory DirectoryInfo
Verzeichnis zum Komprimieren.
includeRootDirectory bool
Angibt, ob die Root-Dokumentation selbst enthalten ist oder nicht.
Returns
Das Archiv mit enthaltenen Beiträgen.
Examples
using (Archive archive = new Archive())
{
DirectoryInfo folder = new DirectoryInfo("C:\folder");
archive.CreateEntries(folder);
archive.Save("folder.zip");
}Exceptions
Der Weg zu directory’ ist nicht gültig, z. B. auf einem unmapped-Drive.
Der Anrufgeber hat nicht die erforderliche Erlaubnis zum Zugriff auf directory'.
CreateEntries(String und Bool)
Add to the archive all files and directories recurrently in the given directory.
public Archive CreateEntries(string sourceDirectory, bool includeRootDirectory = true)Parameters
sourceDirectory string
Verzeichnis zum Komprimieren.
includeRootDirectory bool
Angibt, ob die Root-Dokumentation selbst enthalten ist oder nicht.
Returns
Das Archiv mit enthaltenen Beiträgen.
Examples
using (Archive archive = new Archive())
{
archive.CreateEntries("C:\folder");
archive.Save("folder.zip");
}CreateEntry(String, String, Bool, ArchiveEntrySettings)
Erstellen Sie einen einzigen Eingang innerhalb des Archivs.
public ArchiveEntry CreateEntry(string name, string path, bool openImmediately = false, ArchiveEntrySettings newEntrySettings = null)Parameters
name string
Der Name des Eingangs.
path string
Der vollständig qualifizierte Name der neuen Datei oder der relativen Dateiname, der komprimiert werden soll.
openImmediately bool
Wahrlich, wenn Sie die Datei sofort öffnen, öffnen Sie sonst die Datei auf Archiv-Speicher.
newEntrySettings ArchiveEntrySettings
Kompression und Verschlüsselung Einstellungen für das hinzugefügt Aspose.Zip.ArchiveEntry Element verwendet.
Returns
Zip Eintrittsinstanz.
Examples
using (FileStream zipFile = File.Open("archive.zip", FileMode.Create))
{
using (var archive = new Archive())
{
archive.CreateEntry("data.bin", "file.dat");
archive.Save(zipFile);
}
}Remarks
Der im Parameter angegebenen Dateiname beeinflusst nicht den Eingangsnamen. Wenn die Datei sofort mit dem Parameter geöffnet wird, wird sie blockiert, bis das Archiv gespeichert wird.
Exceptions
path’ is null.
Der Anrufgeber hat nicht die erforderliche Erlaubnis für den Zugang.
Die path’ ist leer, enthält nur weiße Räume oder enthält ungültige Zeichen.
Der Zugriff auf die Datei path" wird abgelehnt.
Die angegebenen path’, Dateinamen, oder beide überschreiten die Systemdefinierte maximale Länge. Zum Beispiel auf Windows-basierten Plattformen müssen die Paths weniger als 248 Zeichen und Dateinamen weniger als 260 Zeichen sein.
Die Datei bei path’ enthält eine Kolonne (:) in der Mitte der Zeile.
CreateEntry(String, Stream und ArchiveEntrySettings)
Erstellen Sie einen einzigen Eingang innerhalb des Archivs.
public ArchiveEntry CreateEntry(string name, Stream source, ArchiveEntrySettings newEntrySettings = null)Parameters
name string
Der Name des Eingangs.
source Stream
Der Eingangstrom für den Eingang.
newEntrySettings ArchiveEntrySettings
Kompression und Verschlüsselung Einstellungen für das hinzugefügt Aspose.Zip.ArchiveEntry Element verwendet.
Returns
Zip Eintrittsinstanz.
Examples
using (var archive = new Archive(new ArchiveEntrySettings(null, new AesEcryptionSettings("p@s$", EncryptionMethod.AES256))))
{
archive.CreateEntry("data.bin", new MemoryStream(new byte[] {0x00, 0xFF} ));
archive.Save("archive.zip");
}CreateEntry(String, FileInfo, Bool, ArchiveEntrySettings)
Erstellen Sie einen einzigen Eingang innerhalb des Archivs.
public ArchiveEntry CreateEntry(string name, FileInfo fileInfo, bool openImmediately = false, ArchiveEntrySettings newEntrySettings = null)Parameters
name string
Der Name des Eingangs.
fileInfo FileInfo
Die Metadaten der Datei werden komprimiert.
openImmediately bool
Wahrlich, wenn Sie die Datei sofort öffnen, öffnen Sie sonst die Datei auf Archiv-Speicher.
newEntrySettings ArchiveEntrySettings
Kompression und Verschlüsselung Einstellungen für das hinzugefügt Aspose.Zip.ArchiveEntry Element verwendet.
Returns
Zip Eintrittsinstanz.
Examples
Komponieren Sie das Archiv mit enthaltenen Eingaben verschlüsselt mit verschiedenen Verschlüsselungsmethoden und Passwörtern jeweils.
using (FileStream zipFile = File.Open("archive.zip", FileMode.Create))
{
FileInfo fi1 = new FileInfo("data1.bin");
FileInfo fi2 = new FileInfo("data2.bin");
FileInfo fi3 = new FileInfo("data3.bin");
using (var archive = new Archive())
{
archive.CreateEntry("entry1.bin", fi1, false, new ArchiveEntrySettings(new DeflateCompressionSettings(), new TraditionalEncryptionSettings("pass1")));
archive.CreateEntry("entry2.bin", fi2, false, new ArchiveEntrySettings(new DeflateCompressionSettings(), new AesEcryptionSettings("pass2", EncryptionMethod.AES128)));
archive.CreateEntry("entry3.bin", fi3, false, new ArchiveEntrySettings(new DeflateCompressionSettings(), new AesEcryptionSettings("pass3", EncryptionMethod.AES256)));
archive.Save(zipFile);
}
}Remarks
Der im Parameter angegebenen Dateiname beeinflusst nicht den Eingangsnamen. Wenn die Datei sofort mit dem Parameter geöffnet wird, wird sie blockiert, bis das Archiv gespeichert wird.
Exceptions
fileInfo’ is read-only or is a directory.
Der angegebenen Weg ist ungültig, z. B. auf einem unmapped Drive.
Die Datei ist bereits geöffnet.
CreateEntry(String, Stream, ArchiveEntrySettings, FileSystemInfo)
Erstellen Sie einen einzigen Eingang innerhalb des Archivs.
public ArchiveEntry CreateEntry(string name, Stream source, ArchiveEntrySettings newEntrySettings, FileSystemInfo fileInfo)Parameters
name string
Der Name des Eingangs.
source Stream
Der Eingangstrom für den Eingang.
newEntrySettings ArchiveEntrySettings
Kompression und Verschlüsselung Einstellungen für das hinzugefügt Aspose.Zip.ArchiveEntry Element verwendet.
fileInfo FileSystemInfo
Die Metadaten von Datei oder Ordner zu komprimieren.
Returns
Zip Eintrittsinstanz.
Examples
Archiv mit verschlüsseltem Eingang.
using (FileStream zipFile = File.Open("archive.zip", FileMode.Create))
{
using (var archive = new Archive())
{
archive.CreateEntry("entry1.bin", new MemoryStream(new byte[] {0x00, 0xFF} ), new ArchiveEntrySettings(new DeflateCompressionSettings(), new TraditionalEncryptionSettings("pass1")), new FileInfo("data1.bin"));
archive.Save(zipFile);
}
}Remarks
Der im Parameter angegebenen Dateiname beeinflusst nicht den Eingangsnamen. Sie können auf System.IO.DirectoryInfo beziehen, wenn die Eingabe ein Katalog ist.
Exceptions
Zwei source’ und fileInfo’ sind null oder source’ ist null und fileInfo’ steht für den Katalog.
CreateEntry(String, Funktion < Stream>, ArchiveEntrySettings)
Erstellen Sie einen einzigen Eingang innerhalb des Archivs.
public ArchiveEntry CreateEntry(string name, Func<stream> streamProvider, ArchiveEntrySettings newEntrySettings = null)Parameters
name string
Der Name des Eingangs.
streamProvider Func
&undlt;
Stream
>
Die Methode, die den Eingangsstrom für den Eingang bietet.
newEntrySettings ArchiveEntrySettings
Kompression und Verschlüsselung Einstellungen für das hinzugefügt Aspose.Zip.ArchiveEntry Element verwendet.
Returns
Zip Eintrittsinstanz.
Examples
Archiv mit verschlüsseltem Eingang.
System.Func<Stream> provider = delegate(){ return new MemoryStream(new byte[]{0xFF, 0x00}); };
using (FileStream zipFile = File.Open("archive.zip", FileMode.Create))
{
using (var archive = new Archive())
{
archive.CreateEntry("entry1.bin", provider, new ArchiveEntrySettings(new DeflateCompressionSettings(), new TraditionalEncryptionSettings("pass1"))));
archive.Save(zipFile);
}
}Remarks
Diese Methode gilt für .NET Framework 4.0 und höher und für .NET Standard 2.0 Version.
DeleteEntry(ArchiveEntry)
Entfernen Sie den ersten Auftritt des spezifischen Eingangs aus der Eingangsliste.
public Archive DeleteEntry(ArchiveEntry entry)Parameters
entry ArchiveEntry
Eintritt zu entfernen aus der Eintrittsliste.
Returns
Das Archiv mit dem Eingang gelöscht.
Examples
Hier ist, wie Sie alle Beiträge mit Ausnahme des letzten entfernen können:
using (var archive = new Archive("archive.zip"))
{
while (archive.Entries.Count > 1)
archive.DeleteEntry(archive.Entries[0]);
archive.Save("last_entry.zip");
}Exceptions
Das Archiv ist abgeschaltet.
DeleteEntry(Int)
Entfernen Sie den Eingang aus der Eingangsliste durch Index.
public Archive DeleteEntry(int entryIndex)Parameters
entryIndex int
Der null-basierte Index des Eingangs zu entfernen.
Returns
Das Archiv mit dem Eingang gelöscht.
Examples
using (var archive = new TarArchive("two_files.zip"))
{
archive.DeleteEntry(0);
archive.Save("single_file.zip");
}Exceptions
Archiv ist abgeschaltet.
entryIndex’ is less than 0.-or- entryIndex’ is equal to or greater than ‘Entries’ count.
Dispose()
Er erfüllt anwendungsdefinierte Aufgaben, die mit der Freisetzung, Freisetzung oder Wiederherstellung unverwalter Ressourcen verbunden sind.
public void Dispose()Dispose(Bool)
Er erfüllt anwendungsdefinierte Aufgaben, die mit der Freisetzung, Freisetzung oder Wiederherstellung unverwalter Ressourcen verbunden sind.
protected virtual void Dispose(bool disposing)Parameters
disposing bool
Ob verwaltete Ressourcen abgeschieden werden sollten.
ExtractToDirectory(String)
Entfernen Sie alle Dateien im Archiv in das angebotene Katalog.
public void ExtractToDirectory(string destinationDirectory)Parameters
destinationDirectory string
Der Weg zum Katalog, um die extrahierten Dateien in.
Examples
using (var archive = new Archive("archive.zip"))
{
archive.ExtractToDirectory("C:\extracted");
}Remarks
Wenn das Katalog nicht existiert, wird es erstellt.
Exceptions
destinationDirectory’ is null.
Die angegebenen Path, Dateinamen oder beide überschreiten die Systemdefinierte maximale Länge. Zum Beispiel müssen auf Windows-basierten Plattformen Paths weniger als 248 Zeichen und Dateinamen weniger als 260 Zeichen sein.
Der Anrufgeber hat nicht die erforderliche Erlaubnis, das bestehende Direktorium zuzugreifen.
Wenn der Direktor nicht existiert, enthält der Pfad einen Zollkarakter (:) der nicht Teil eines Labels ist (“C:”).
destinationDirectory’ is a zero-length string, contains only white space, or contains one or more invalid characters. You can query for invalid characters by using the System.IO.Path.GetInvalidPathChars method.-or- path is prefixed with, or contains, only a colon character (:).
Die durch den Weg angegebenen Katalog ist eine Datei. -or- Der Netzwerkname ist nicht bekannt.
Das falsche Passwort wurde bereitgestellt. - oder - Archiv ist korrupt.
Save(Stream, ArchiveSaveOptions)
Speichern Sie Archive für den bereitgestellten Strom.
public void Save(Stream outputStream, ArchiveSaveOptions saveOptions = null)Parameters
outputStream Stream
Der Destinationstrom.
saveOptions ArchiveSaveOptions
Optionen für Archivsparnisse.
Examples
using (FileStream zipFile = File.Open("archive.zip", FileMode.Create))
{
using (var archive = new Archive())
{
archive.CreateEntry("entry.bin", "data.bin");
archive.Save(zipFile);
}
}Remarks
Es muss geschrieben werden.
Exceptions
outputStream’ is not writable.
Das Archiv ist abgeschaltet.
Save(String, ArchiveSaveOptions)
Speichern Sie das Archiv auf die bereitgestellte Zieldatei.
public void Save(string destinationFileName, ArchiveSaveOptions saveOptions = null)Parameters
destinationFileName string
Wenn der angegebenen Datei-Name auf eine bestehende Datei bezieht, wird sie übergeschrieben.
saveOptions ArchiveSaveOptions
Optionen für Archivsparnisse.
Examples
using (var archive = new Archive())
{
archive.CreateEntry("entry.bin", "data.bin");
archive.Save("archive.zip", new ArchiveSaveOptions() { Encoding = Encoding.ASCII });
}Remarks
Es ist möglich, ein Archiv auf dem gleichen Weg zu speichern, wie es heruntergeladen wurde. jedoch wird dies nicht empfohlen, weil dieser Ansatz Kopieren zu einer vorübergehenden Datei verwendet.
Exceptions
destinationFileName’ is null.
Der Anrufgeber hat nicht die erforderliche Erlaubnis für den Zugang.
Die destinationFileName’ ist leer, enthält nur weiße Räume oder enthält ungültige Zeichen.
Der Zugriff auf die Datei destinationFileName’ wird abgelehnt.
Die angegebenen destinationFileName’, Dateiname, oder beide überschreiten die systemdefinierte maximale Länge.Z. B. auf Windows-basierten Plattformen müssen die Spuren weniger als 248 Zeichen und die Dateinamen weniger als 260 Zeichen sein.
Datei bei destinationFileName’ enthält eine Kolonne (:) in der Mitte der Zeile.
Die Datei ist nicht gefunden.
Der angegebenen Weg ist ungültig, z. B. auf einem unmapped Drive.
Die Datei ist bereits geöffnet.
SaveSplit(String, SplitArchiveSaveOptions)
Speichert das Multi-Volume-Archiv in das angebotene Ziele-Direktorien.
public void SaveSplit(string destinationDirectory, SplitArchiveSaveOptions options)Parameters
destinationDirectory string
Der Weg zum Katalog, in dem Archivsegmente erstellt werden sollen.
options SplitArchiveSaveOptions
Optionen für die Archiv-Speicherung, einschließlich des Dateinamen.
Examples
using (Archive archive = new Archive())
{
archive.CreateEntry("entry.bin", "data.bin");
archive.SaveSplit(@"C:\Folder", new SplitArchiveSaveOptions("volume", 65536));
}Remarks
Diese Methode besteht aus mehreren () Dateien filename.z01, filename.z02, …, filename.z(n-1), filename.zip. Es ist nicht möglich, bestehende Archiv-Multi-Volume zu machen.
Exceptions
Dieses Archiv wurde von der bestehenden Quelle geöffnet.
Dieses Archiv wird mit der XZ-Methode komprimiert und verschlüsselt.
destinationDirectory’ is null.
Der Anrufgeber hat nicht die erforderliche Erlaubnis, das Direktorium zuzugreifen.
destinationDirectory’ contains invalid characters such as “, >, <, or |.
Der angegebenen Weg überschreitet die Systemdefinierte Höchstlänge.
Das Archiv ist abgeschaltet.