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, IDisposable
Inheritance
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.