Class GzipArchive
Namespace: Aspose.Zip.Gzip
Assembly: Aspose.Zip.dll (25.1.0)
Tato třída představuje gzip archivační soubor. Použijte ji k vytvoření nebo extrakci gzip archivů.
public class GzipArchive : IArchive, IDisposable, IArchiveFileEntry
Dědičnost
Implementuje
IArchive, IDisposable, IArchiveFileEntry
Děděné členy
object.GetType(), object.MemberwiseClone(), object.ToString(), object.Equals(object?), object.Equals(object?, object?), object.ReferenceEquals(object?, object?), object.GetHashCode()
Poznámky
Algoritmus gzip komprese je založen na algoritmu DEFLATE, což je kombinace LZ77 a Huffmanova kódování.
Konstruktor
GzipArchive()
Inicializuje novou instanci třídy Aspose.Zip.Gzip.GzipArchive připravenou pro kompresi.
public GzipArchive()
Příklady
Následující příklad ukazuje, jak zkomprimovat soubor.
using (GzipArchive archive = new GzipArchive())
{
archive.SetSource("data.bin");
archive.Save("archive.gz");
}
GzipArchive(Stream, bool)
Inicializuje novou instanci třídy Aspose.Zip.Gzip.GzipArchive připravenou pro dekompresi.
public GzipArchive(Stream sourceStream, bool parseHeader = false)
Parametry
sourceStream
Stream
Zdroj archivu.
parseHeader
bool
Zda analyzovat hlavičku streamu pro určení vlastností, včetně názvu. Dává smysl pouze pro seekable stream.
Příklady
Otevřete archiv ze streamu a extrahujte ho do MemoryStream
var ms = new MemoryStream();
using (GzipArchive archive = new GzipArchive(File.OpenRead("archive.gz")))
archive.Open().CopyTo(ms);
Poznámky
Tento konstruktor neprovádí dekompresi. Podívejte se na metodu Aspose.Zip.Gzip.GzipArchive.Open pro dekompresi.
GzipArchive(string, bool)
Inicializuje novou instanci třídy Aspose.Zip.Gzip.GzipArchive.
public GzipArchive(string path, bool parseHeader = false)
Parametry
path
string
Cesta k archivačnímu souboru.
parseHeader
bool
Zda analyzovat hlavičku streamu pro určení vlastností, včetně názvu. Dává smysl pouze pro seekable stream.
Příklady
Otevřete archiv ze souboru podle cesty a extrahujte ho do MemoryStream
var ms = new MemoryStream();
using (GzipArchive archive = new GzipArchive("archive.gz"))
archive.Open().CopyTo(ms);
Poznámky
Tento konstruktor neprovádí dekompresi. Podívejte se na metodu Aspose.Zip.Gzip.GzipArchive.Open pro dekompresi.
Výjimky
path
je null.
Volající nemá potřebné oprávnění k přístupu.
path
je prázdný, obsahuje pouze bílé znaky nebo obsahuje neplatné znaky.
Přístup k souboru path
je odepřen.
Zadaná path
, název souboru nebo obojí překračují maximální délku definovanou systémem. Například na platformách založených na Windows musí být cesty kratší než 248 znaků a názvy souborů kratší než 260 znaků.
Soubor na path
obsahuje dvojtečku (:) uprostřed řetězce.
Vlastnosti
Name
Název původního souboru.
public string Name { get; }
Hodnota vlastnosti
Metody
Dispose()
Provádí úkoly definované aplikací spojené s uvolněním, uvolněním nebo resetováním neřízených prostředků.
public void Dispose()
Dispose(bool)
Provádí úkoly definované aplikací spojené s uvolněním, uvolněním nebo resetováním neřízených prostředků.
protected virtual void Dispose(bool disposing)
Parametry
disposing
bool
Zda by měly být uvolněny řízené prostředky.
Extract(Stream)
Extrahuje archiv do poskytnutého streamu.
public void Extract(Stream destination)
Parametry
destination
Stream
Cílový stream. Musí být zapisovatelný.
Příklady
using (var archive = new GzipArchive("archive.gz"))
{
archive.Extract(httpResponseStream);
}
Výjimky
destination
nepodporuje zápis.
Stream je poškozen a neobsahuje platná data.
Extract(string)
Extrahuje archiv do souboru podle cesty.
public FileInfo Extract(string path)
Parametry
path
string
Cesta k cílovému souboru. Pokud soubor již existuje, bude přepsán.
Návrat
Info o extrahovaném souboru.
Výjimky
path
je null.
Volající nemá potřebné oprávnění k přístupu.
path
je prázdný, obsahuje pouze bílé znaky nebo obsahuje neplatné znaky.
Přístup k souboru path
je odepřen.
Zadaná path
, název souboru nebo obojí překračují maximální délku definovanou systémem. Například na platformách založených na Windows musí být cesty kratší než 248 znaků a názvy souborů kratší než 260 znaků.
Soubor na path
obsahuje dvojtečku (:) uprostřed řetězce.
Stream je poškozen a neobsahuje platná data.
ExtractToDirectory(string)
Extrahuje obsah archivu do zadaného adresáře.
public void ExtractToDirectory(string destinationDirectory)
Parametry
destinationDirectory
string
Cesta k adresáři, do kterého budou umístěny extrahované soubory.
Poznámky
Pokud adresář neexistuje, bude vytvořen.
Výjimky
destinationDirectory
je null.
Zadaná cesta, název souboru nebo obojí překračují maximální délku definovanou systémem. Například na platformách založených na Windows musí být cesty kratší než 248 znaků a názvy souborů kratší než 260 znaků.
Volající nemá potřebné oprávnění k přístupu k existujícímu adresáři.
Pokud adresář neexistuje, cesta obsahuje znak dvojtečky (:) který není součástí popisku jednotky (“C:").
destinationDirectory
je řetězec nulové délky, obsahuje pouze bílé znaky nebo obsahuje jeden nebo více neplatných znaků. Neplatné znaky můžete zjistit pomocí metody System.IO.Path.GetInvalidPathChars.
-nebo- cesta je předpona nebo obsahuje pouze znak dvojtečky (:).
Adresář určený cestou je soubor. -nebo- Síťový název není znám.
Open()
Otevře archiv pro extrakci a poskytne stream s obsahem archivu.
public Stream Open()
Návrat
Stream, který představuje obsah archivu.
Příklady
Extrahuje archiv a zkopíruje extrahovaný obsah do souborového streamu.
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);
}
}
Můžete použít metodu Stream.CopyTo pro .NET 4.0 a vyšší: `unpacked.CopyTo(extracted);`
Poznámky
Čtěte ze streamu, abyste získali původní obsah souboru. Viz sekce příkladů.
Save(Stream)
Uloží archiv do poskytnutého streamu.
public void Save(Stream outputStream)
Parametry
outputStream
Stream
Cílový stream.
Příklady
Píše komprimovaná data do streamu HTTP odpovědi.
using (var archive = new GzipArchive())
{
archive.SetSource(new FileInfo("data.bin"));
archive.Save(httpResponse.OutputStream);
}
Poznámky
outputStream
musí být zapisovatelný.
Výjimky
outputStream
není zapisovatelný.
Zdroj nebyl dodán.
Save(string)
Uloží archiv do zadaného cílového souboru.
public void Save(string destinationFileName)
Parametry
destinationFileName
string
Cesta archivu, který má být vytvořen. Pokud zadaný název souboru odkazuje na existující soubor, bude přepsán.
Příklady
using (var archive = new GzipArchive())
{
archive.SetSource("data.bin");
archive.Save("archive.gz");
}
Výjimky
destinationFileName
je null.
Volající nemá potřebné oprávnění k přístupu.
destinationFileName
je prázdný, obsahuje pouze bílé znaky nebo obsahuje neplatné znaky.
Přístup k souboru destinationFileName
je odepřen.
Zadaná destinationFileName
, název souboru nebo obojí překračují maximální délku definovanou systémem. Například na platformách založených na Windows musí být cesty kratší než 248 znaků a názvy souborů kratší než 260 znaků.
Soubor na destinationFileName
obsahuje dvojtečku (:) uprostřed řetězce.
SetSource(Stream)
Nastaví obsah, který má být komprimován v archivu.
public void SetSource(Stream source)
Parametry
source
Stream
Vstupní stream pro archiv.
Příklady
using (var archive = new GzipArchive())
{
archive.SetSource(new MemoryStream(new byte[] { 0x00, 0xFF }));
archive.Save("archive.gz");
}
SetSource(FileInfo)
Nastaví obsah, který má být komprimován v archivu.
public void SetSource(FileInfo fileInfo)
Parametry
fileInfo
FileInfo
Odkaz na soubor, který má být komprimován.
Příklady
using (var archive = new GzipArchive())
{
archive.SetSource(new FileInfo("data.bin"));
archive.Save("archive.gz");
}
SetSource(string)
Nastaví obsah, který má být komprimován v archivu.
public void SetSource(string path)
Parametry
path
string
Cesta k souboru, který má být komprimován.
Příklady
Otevřete archiv ze souboru podle cesty a extrahujte ho do MemoryStream
using (var archive = new GzipArchive())
{
archive.SetSource("data.bin");
archive.Save("archive.gz");
}
Výjimky
path
je null.
Volající nemá potřebné oprávnění k přístupu.
path
je prázdný, obsahuje pouze bílé znaky nebo obsahuje neplatné znaky.
Přístup k souboru path
je odepřen.
Zadaná path
, název souboru nebo obojí překračují maximální délku definovanou systémem. Například na platformách založených na Windows musí být cesty kratší než 248 znaků a názvy souborů kratší než 260 znaků.
Soubor na path
obsahuje dvojtečku (:) uprostřed řetězce.
SetSource(TarArchive)
Nastaví obsah, který má být komprimován v archivu.
public void SetSource(TarArchive tarArchive)
Parametry
tarArchive
TarArchive
Tar archiv, který má být komprimován.
Příklady
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");
}
}
Poznámky
Použijte tuto metodu k vytvoření společného tar.gz archivu.