Class GzipArchive
Namespace: Aspose.Zip.Gzip
Assembly: Aspose.Zip.dll (25.1.0)
Diese Klasse repräsentiert eine gzip-Archivdatei. Verwenden Sie sie, um gzip-Archive zu erstellen oder zu extrahieren.
public class GzipArchive : IArchive, IDisposable, IArchiveFileEntry
Vererbung
Implementiert
IArchive, IDisposable, IArchiveFileEntry
Vererbte Mitglieder
object.GetType(), object.MemberwiseClone(), object.ToString(), object.Equals(object?), object.Equals(object?, object?), object.ReferenceEquals(object?, object?), object.GetHashCode()
Bemerkungen
Der Gzip-Komprimierungsalgorithmus basiert auf dem DEFLATE-Algorithmus, der eine Kombination aus LZ77 und Huffman-Codierung ist.
Konstruktoren
GzipArchive()
Initialisiert eine neue Instanz der Aspose.Zip.Gzip.GzipArchive-Klasse, die für die Komprimierung vorbereitet ist.
public GzipArchive()
Beispiele
Das folgende Beispiel zeigt, wie man eine Datei komprimiert.
using (GzipArchive archive = new GzipArchive())
{
archive.SetSource("data.bin");
archive.Save("archive.gz");
}
GzipArchive(Stream, bool)
Initialisiert eine neue Instanz der Aspose.Zip.Gzip.GzipArchive-Klasse, die für die Dekomprimierung vorbereitet ist.
public GzipArchive(Stream sourceStream, bool parseHeader = false)
Parameter
sourceStream
Stream
Die Quelle des Archivs.
parseHeader
bool
Ob der Stream-Header analysiert werden soll, um Eigenschaften, einschließlich des Namens, zu ermitteln. Macht nur für durchsuchbare Streams Sinn.
Beispiele
Öffnen Sie ein Archiv aus einem Stream und extrahieren Sie es in einen MemoryStream
var ms = new MemoryStream();
using (GzipArchive archive = new GzipArchive(File.OpenRead("archive.gz")))
archive.Open().CopyTo(ms);
Bemerkungen
Dieser Konstruktor führt keine Dekomprimierung durch. Siehe die Methode Aspose.Zip.Gzip.GzipArchive.Open zum Dekomprimieren.
GzipArchive(string, bool)
Initialisiert eine neue Instanz der Aspose.Zip.Gzip.GzipArchive-Klasse.
public GzipArchive(string path, bool parseHeader = false)
Parameter
path
string
Der Pfad zur Archivdatei.
parseHeader
bool
Ob der Stream-Header analysiert werden soll, um Eigenschaften, einschließlich des Namens, zu ermitteln. Macht nur für durchsuchbare Streams Sinn.
Beispiele
Öffnen Sie ein Archiv aus einer Datei über den Pfad und extrahieren Sie es in einen MemoryStream
var ms = new MemoryStream();
using (GzipArchive archive = new GzipArchive("archive.gz"))
archive.Open().CopyTo(ms);
Bemerkungen
Dieser Konstruktor führt keine Dekomprimierung durch. Siehe die Methode Aspose.Zip.Gzip.GzipArchive.Open zum Dekomprimieren.
Ausnahmen
path
ist null.
Der Aufrufer hat nicht die erforderliche Berechtigung für den Zugriff.
Der path
ist leer, enthält nur Leerzeichen oder ungültige Zeichen.
Der 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 weniger als 248 Zeichen und Dateinamen weniger als 260 Zeichen lang sein.
Die Datei unter path
enthält einen Doppelpunkt (:) in der Mitte des Strings.
Eigenschaften
Name
Name der Originaldatei.
public string Name { get; }
Eigenschaftswert
Methoden
Dispose()
Führt anwendungsspezifische Aufgaben aus, die mit dem Freigeben, Zurücksetzen oder Freigeben nicht verwalteter Ressourcen verbunden sind.
public void Dispose()
Dispose(bool)
Führt anwendungsspezifische Aufgaben aus, die mit dem Freigeben, Zurücksetzen oder Freigeben nicht verwalteter Ressourcen verbunden sind.
protected virtual void Dispose(bool disposing)
Parameter
disposing
bool
Ob verwaltete Ressourcen freigegeben werden sollen.
Extract(Stream)
Extrahiert das Archiv in den bereitgestellten Stream.
public void Extract(Stream destination)
Parameter
destination
Stream
Zielstream. Muss beschreibbar sein.
Beispiele
using (var archive = new GzipArchive("archive.gz"))
{
archive.Extract(httpResponseStream);
}
Ausnahmen
destination
unterstützt kein Schreiben.
Der Stream ist beschädigt und enthält keine gültigen Daten.
Extract(string)
Extrahiert das Archiv in die Datei über den Pfad.
public FileInfo Extract(string path)
Parameter
path
string
Der Pfad zur Zieldatei. Wenn die Datei bereits existiert, wird sie überschrieben.
Rückgabewert
Informationen zur extrahierten Datei.
Ausnahmen
path
ist null.
Der Aufrufer hat nicht die erforderliche Berechtigung für den Zugriff.
Der path
ist leer, enthält nur Leerzeichen oder ungültige Zeichen.
Der 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 weniger als 248 Zeichen und Dateinamen weniger als 260 Zeichen lang sein.
Die Datei unter path
enthält einen Doppelpunkt (:) in der Mitte des Strings.
Der Stream ist beschädigt und enthält keine gültigen Daten.
ExtractToDirectory(string)
Extrahiert den Inhalt des Archivs in das bereitgestellte Verzeichnis.
public void ExtractToDirectory(string destinationDirectory)
Parameter
destinationDirectory
string
Der Pfad zum Verzeichnis, in das die extrahierten Dateien abgelegt werden sollen.
Bemerkungen
Wenn das Verzeichnis nicht existiert, wird es erstellt.
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 weniger als 248 Zeichen und Dateinamen weniger als 260 Zeichen lang sein.
Der Aufrufer hat nicht die erforderliche Berechtigung, um auf das vorhandene Verzeichnis zuzugreifen.
Wenn das Verzeichnis nicht existiert, enthält der Pfad ein Doppelpunktzeichen (:) das nicht Teil eines Laufwerksbezeichners (“C:") ist.
destinationDirectory
ist eine Nullzeichenfolge, enthält nur Leerzeichen oder enthält ein oder mehrere ungültige Zeichen. Sie können nach ungültigen Zeichen suchen, indem Sie die Methode System.IO.Path.GetInvalidPathChars verwenden.
-oder- der Pfad ist mit oder enthält nur ein Doppelzeichen (:) vorangestellt.
Das durch den Pfad angegebene Verzeichnis ist eine Datei. -oder- Der Netzwerkname ist unbekannt.
Open()
Öffnet das Archiv zur Extraktion und stellt einen Stream mit dem Archivinhalt bereit.
public Stream Open()
Rückgabewert
Der Stream, der den Inhalt des Archivs darstellt.
Beispiele
Extrahiert das Archiv und kopiert den extrahierten Inhalt in einen Dateistream.
using (var archive = new GzipArchive("archive.gz"))
{
using (var extracted = File.Create("data.bin"))
{
var unpacked = archive.Open();
byte[] b = new byte[8192];
int bytesRead;
while (0 < (bytesRead = unpacked.Read(b, 0, b.Length)))
extracted.Write(b, 0, bytesRead);
}
}
Sie können die Methode Stream.CopyTo für .NET 4.0 und höher verwenden: `unpacked.CopyTo(extracted);`
Bemerkungen
Lesen Sie aus dem Stream, um den ursprünglichen Inhalt der Datei zu erhalten. Siehe Abschnitt Beispiele.
Save(Stream)
Speichert das Archiv im bereitgestellten Stream.
public void Save(Stream outputStream)
Parameter
outputStream
Stream
Zielstream.
Beispiele
Schreibt komprimierte Daten in den HTTP-Antwortstream.
using (var archive = new GzipArchive())
{
archive.SetSource(new FileInfo("data.bin"));
archive.Save(httpResponse.OutputStream);
}
Bemerkungen
outputStream
muss beschreibbar sein.
Ausnahmen
outputStream
ist nicht beschreibbar.
Die Quelle wurde nicht bereitgestellt.
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 (var archive = new GzipArchive())
{
archive.SetSource("data.bin");
archive.Save("archive.gz");
}
Ausnahmen
destinationFileName
ist null.
Der Aufrufer hat nicht die erforderliche Berechtigung für den Zugriff.
Der destinationFileName
ist leer, enthält nur Leerzeichen oder ungültige Zeichen.
Der 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 weniger als 248 Zeichen und Dateinamen weniger als 260 Zeichen lang sein.
Die Datei unter destinationFileName
enthält einen Doppelpunkt (:) in der Mitte des Strings.
SetSource(Stream)
Legt den Inhalt fest, der im Archiv komprimiert werden soll.
public void SetSource(Stream source)
Parameter
source
Stream
Der Eingabestream für das Archiv.
Beispiele
using (var archive = new GzipArchive())
{
archive.SetSource(new MemoryStream(new byte[] { 0x00, 0xFF }));
archive.Save("archive.gz");
}
SetSource(FileInfo)
Legt den Inhalt fest, der im Archiv komprimiert werden soll.
public void SetSource(FileInfo fileInfo)
Parameter
fileInfo
FileInfo
Die Referenz auf eine Datei, die komprimiert werden soll.
Beispiele
using (var archive = new GzipArchive())
{
archive.SetSource(new FileInfo("data.bin"));
archive.Save("archive.gz");
}
SetSource(string)
Legt den Inhalt fest, der im Archiv komprimiert werden soll.
public void SetSource(string path)
Parameter
path
string
Pfad zur Datei, die komprimiert werden soll.
Beispiele
Öffnen Sie ein Archiv aus einer Datei über den Pfad und extrahieren Sie es in einen MemoryStream
using (var archive = new GzipArchive())
{
archive.SetSource("data.bin");
archive.Save("archive.gz");
}
Ausnahmen
path
ist null.
Der Aufrufer hat nicht die erforderliche Berechtigung für den Zugriff.
Der path
ist leer, enthält nur Leerzeichen oder ungültige Zeichen.
Der 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 weniger als 248 Zeichen und Dateinamen weniger als 260 Zeichen lang sein.
Die Datei unter path
enthält einen Doppelpunkt (:) in der Mitte des Strings.
SetSource(TarArchive)
Legt den Inhalt fest, der im Archiv komprimiert werden soll.
public void SetSource(TarArchive tarArchive)
Parameter
tarArchive
TarArchive
Tar-Archiv, das komprimiert werden soll.
Beispiele
using (var tarArchive = new TarArchive())
{
tarArchive.CreateEntry("first.bin", "data1.bin");
tarArchive.CreateEntry("second.bin", "data2.bin");
using (var gzippedArchive = new GzipArchive())
{
gzippedArchive.SetSource(tarArchive);
gzippedArchive.Save("archive.tar.gz");
}
}
Bemerkungen
Verwenden Sie diese Methode, um ein gemeinsames tar.gz-Archiv zu erstellen.