Class GzipArchive

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

objectGzipArchive

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

ArgumentNullException

path je null.

SecurityException

Volající nemá potřebné oprávnění k přístupu.

ArgumentException

path je prázdný, obsahuje pouze bílé znaky nebo obsahuje neplatné znaky.

UnauthorizedAccessException

Přístup k souboru path je odepřen.

PathTooLongException

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ů.

NotSupportedException

Soubor na path obsahuje dvojtečku (:) uprostřed řetězce.

Vlastnosti

Name

Název původního souboru.

public string Name { get; }

Hodnota vlastnosti

string

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

ArgumentException

destination nepodporuje zápis.

InvalidDataException

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

FileInfo

Info o extrahovaném souboru.

Výjimky

ArgumentNullException

path je null.

SecurityException

Volající nemá potřebné oprávnění k přístupu.

ArgumentException

path je prázdný, obsahuje pouze bílé znaky nebo obsahuje neplatné znaky.

UnauthorizedAccessException

Přístup k souboru path je odepřen.

PathTooLongException

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ů.

NotSupportedException

Soubor na path obsahuje dvojtečku (:) uprostřed řetězce.

InvalidDataException

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

ArgumentNullException

destinationDirectory je null.

PathTooLongException

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ů.

SecurityException

Volající nemá potřebné oprávnění k přístupu k existujícímu adresáři.

NotSupportedException

Pokud adresář neexistuje, cesta obsahuje znak dvojtečky (:) který není součástí popisku jednotky (“C:").

ArgumentException

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 (:).

IOException

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

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

ArgumentException

outputStream není zapisovatelný.

InvalidOperationException

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

ArgumentNullException

destinationFileName je null.

SecurityException

Volající nemá potřebné oprávnění k přístupu.

ArgumentException

destinationFileName je prázdný, obsahuje pouze bílé znaky nebo obsahuje neplatné znaky.

UnauthorizedAccessException

Přístup k souboru destinationFileName je odepřen.

PathTooLongException

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ů.

NotSupportedException

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

ArgumentNullException

path je null.

SecurityException

Volající nemá potřebné oprávnění k přístupu.

ArgumentException

path je prázdný, obsahuje pouze bílé znaky nebo obsahuje neplatné znaky.

UnauthorizedAccessException

Přístup k souboru path je odepřen.

PathTooLongException

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ů.

NotSupportedException

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.

 Čeština