Class GzipArchive

Class GzipArchive

Nazwa przestrzeń: Aspose.Zip.Gzip Zestawienie: Aspose.Zip.dll (25.5.0)

Ta klasa reprezentuje plik archiwum gzip. Użyj go do tworzenia lub ekstrakcji archiwum gzip.

public class GzipArchive : IArchive, IDisposable, IArchiveFileEntry

Inheritance

object GzipArchive

Implements

IArchive , IDisposable , IArchiveFileEntry

Dziedziczeni członkowie

object.GetType() , object.MemberwiseClone() , object.ToString() , object.Equals(object?) , object.Equals(object?, object?) , object.ReferenceEquals(object?, object?) , object.GetHashCode()

Remarks

Algorytm kompresji Gzip oparty jest na algorytmie DEFLATE, który jest kombinacją kodowania LZ77 i Huffman.

Constructors

GzipArchive()

Inicjalizuje nową instancję klasy Aspose.Zip.Gzip.GzipArchive przygotowanej do kompresji.

public GzipArchive()

Examples

Poniższy przykład pokazuje, jak kompresować plik.

using (GzipArchive archive = new GzipArchive()) 
{
    archive.SetSource("data.bin");
    archive.Save("archive.gz");
}

GzipArchive(strumień, bool)

Inicjalizuje nową instancję klasy Aspose.Zip.Gzip.GzipArchive przygotowanej do dekompresji.

public GzipArchive(Stream sourceStream, bool parseHeader = false)

Parameters

sourceStream Stream

Źródło tego archiwum.

parseHeader bool

Niezależnie od tego, czy przesyłać nagłówek strumienia, aby zidentyfikować właściwości, w tym nazwę.

Examples

Otwórz archiwum z strumienia i wyciągnij go do

var ms = new MemoryStream();
using (GzipArchive archive = new GzipArchive(File.OpenRead("archive.gz")))
  archive.Open().CopyTo(ms);

Remarks

Konstruktor ten nie dekompresuje. zobacz Aspose.Zip.Gzip.GzipArchive.Otwórz metodę dekompresji.

Exceptions

ArgumentNullException

sourceStream’ is null.

EndOfStreamException

sourceStream’ is too short.

InvalidDataException

sourceStream’ ma niewłaściwy podpis.

GzipArchive(Złoty, Bool)

Inicjalizuje nowy przykład klasy Aspose.Zip.Gzip.GzipArchive.

public GzipArchive(string path, bool parseHeader = false)

Parameters

path string

Droga do archiwum.

parseHeader bool

Niezależnie od tego, czy przesyłać nagłówek strumienia, aby zidentyfikować właściwości, w tym nazwę.

Examples

Otwórz archiwum z pliku przez ścieżkę i wyciągnij go do

var ms = new MemoryStream();
using (GzipArchive archive = new GzipArchive("archive.gz"))
  archive.Open().CopyTo(ms);

Remarks

Konstruktor ten nie dekompresuje. zobacz Aspose.Zip.Gzip.GzipArchive.Otwórz metodę dekompresji.

Exceptions

ArgumentNullException

path’ is null.

SecurityException

Klient nie posiada wymaganego zezwolenia na dostęp.

ArgumentException

Ścieżka " jest pusta, zawiera tylko białe przestrzenie lub zawiera nieprawidłowe znaky.

UnauthorizedAccessException

Dostęp do pliku path" jest odrzucony.

PathTooLongException

Określenie path", nazwa pliku lub obie przekracza maksymalną długość określoną przez system. Na przykład, na platformach opartych na systemie Windows, ścieżki muszą być mniejsze niż 248 znaków, a nazwy plików muszą być mniejsze niż 260 znaków.

NotSupportedException

Plik w path’ zawiera kolumnę (:) w środku paska.

EndOfStreamException

Plik jest zbyt krótki.

InvalidDataException

Dane zawarte w pliku mają niewłaściwy podpis.

Properties

Name

Nazwa oryginalnego pliku.

public string Name { get; }

Wartość nieruchomości

string

UncompressedSize

Otrzymuje rozmiar oryginalnego pliku.

public ulong UncompressedSize { get; }

Wartość nieruchomości

ulong

Remarks

Podczas dekompresji, nieruchomość ta może zawierać nieprawidłowy rozmiar.Jeśli rozmiar niekompresowanego pliku przekracza 4GB, nieruchomość ta daje nieprawidłową wartość ze względu na 32-bitowy limit w nagłówku.

Methods

Dispose()

Wykonywanie zadań określonych w aplikacji związanych z uwalnianiem, uwalnianiem lub ponownym uwalnianiem nie zarządzanych zasobów.

public void Dispose()

Dispose(Bool)

Wykonywanie zadań określonych w aplikacji związanych z uwalnianiem, uwalnianiem lub ponownym uwalnianiem nie zarządzanych zasobów.

protected virtual void Dispose(bool disposing)

Parameters

disposing bool

Czy zarządzane zasoby powinny zostać usunięte?

Extract(Stream)

Wyciągnij archiwum do dostarczonego przepływu.

public void Extract(Stream destination)

Parameters

destination Stream

Destination stream. musi być pisemny.

Examples

using (var archive = new GzipArchive("archive.gz"))
{
     archive.Extract(httpResponseStream);
}

Exceptions

ArgumentException

destination’ does not support writing.

InvalidDataException

Stream jest skorumpowany i nie zawiera ważnych danych.

Extract(strumień)

Wyciągnij archiwum do pliku przez ścieżkę.

public FileInfo Extract(string path)

Parameters

path string

Droga do pliku docelowego.Jeśli plik już istnieje, zostanie on przesłany.

Returns

FileInfo

Informacje o wydanych plikach.

Exceptions

ArgumentNullException

path’ is null.

SecurityException

Klient nie posiada wymaganego zezwolenia na dostęp.

ArgumentException

Ścieżka " jest pusta, zawiera tylko białe przestrzenie lub zawiera nieprawidłowe znaky.

UnauthorizedAccessException

Dostęp do pliku path" jest odrzucony.

PathTooLongException

Określenie path", nazwa pliku lub obie przekracza maksymalną długość określoną przez system. Na przykład, na platformach opartych na systemie Windows, ścieżki muszą być mniejsze niż 248 znaków, a nazwy plików muszą być mniejsze niż 260 znaków.

NotSupportedException

Plik w path’ zawiera kolumnę (:) w środku paska.

InvalidDataException

Stream jest skorumpowany i nie zawiera ważnych danych.

ExtractToDirectory(strumień)

Wyciąga treść archiwum do dostarczonego katalogu.

public void ExtractToDirectory(string destinationDirectory)

Parameters

destinationDirectory string

Droga do katalogu, aby umieścić wyciągnięte pliki.

Remarks

Jeśli dyrektywa nie istnieje, zostanie ona utworzona.

Exceptions

ArgumentNullException

destinationDirectory’ is null.

PathTooLongException

Na przykład, na platformach z systemem Windows, ścieżki muszą być mniejsze niż 248 znaków, a nazwy plików muszą być mniejsze niż 260 znaków.

SecurityException

Odwołujący nie posiada wymaganej pozwolenia na dostęp do istniejącego katalogu.

NotSupportedException

Jeśli dyrektywa nie istnieje, ścieżka zawiera znak kolumny (:) który nie jest częścią etykiety napędu (“C:”).

ArgumentException

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

IOException

Dyskusja określona przez ścieżkę jest plikiem. -or- Nazwa sieci nie jest znana.

Open()

Otwiera archiwum do ekstrakcji i zapewnia strumień z treścią archiwum.

public Stream Open()

Returns

Stream

Strumień, który reprezentuje treść archiwum.

Examples

Wyciąga archiwum i kopiuje wyciągnięte treści do strumienia plików.

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);
    }            
}

Możesz użyć metody Stream.CopyTo dla .NET 4.0 i wyższych: unpacked.KopiTo(wyciągnięte);

Remarks

Przeczytaj z strumienia, aby uzyskać oryginalną zawartość pliku. zobacz sekcję Przykłady.

Save(Stream)

Oszczędzaj archiwum na dostarczonym strumieniu.

public void Save(Stream outputStream)

Parameters

outputStream Stream

Przepływ docelowy.

Examples

Napisz kompresowane dane do strumienia odpowiedzi HTTP.

using (var archive = new GzipArchive()) 
{
    archive.SetSource(new FileInfo("data.bin"));
    archive.Save(httpResponse.OutputStream);
}

Remarks

Musi być pisemny.

Exceptions

ArgumentException

outputStream’ is not writable.

InvalidOperationException

Źródła nie zostały dostarczone.

Save(strumień)

Zapisz archiwum do dostarczonego pliku docelowego.

public void Save(string destinationFileName)

Parameters

destinationFileName string

Jeśli określona nazwa pliku wskazuje na istniejący plik, zostanie on przesłany.

Examples

using (var archive = new GzipArchive())
{
    archive.SetSource("data.bin");
    archive.Save("archive.gz");
}

Exceptions

ArgumentNullException

destinationFileName’ is null.

SecurityException

Klient nie posiada wymaganego zezwolenia na dostęp.

ArgumentException

destinationFileName’ jest pusta, zawiera tylko białe przestrzenie lub zawiera nieprawidłowe znaky.

UnauthorizedAccessException

Dostęp do pliku destinationFileName’ jest odrzucony.

PathTooLongException

Określenie destinationFileName’, nazwa pliku, lub obie przekracza maksymalną długość określoną przez system. Na przykład, na platformach z systemem Windows, ścieżki muszą być mniejsze niż 248 znaków, a nazwy plików muszą być mniejsze niż 260 znaków.

NotSupportedException

Plik w adresie destinationFileName’ zawiera kolumnę (:) w środku paska.

SetSource(Stream)

Ustaw zawartość do kompresji w archiwum.

public void SetSource(Stream source)

Parameters

source Stream

Przepływ wejściowy do archiwum.

Examples

using (var archive = new GzipArchive())
{
    archive.SetSource(new MemoryStream(new byte[] { 0x00, 0xFF }));
    archive.Save("archive.gz");
}

SetSource(FileInfo)

Ustaw zawartość do kompresji w archiwum.

public void SetSource(FileInfo fileInfo)

Parameters

fileInfo FileInfo

Odniesienie do pliku do kompresji.

Examples

using (var archive = new GzipArchive()) 
{
    archive.SetSource(new FileInfo("data.bin"));
    archive.Save("archive.gz");
}

SetSource(strumień)

Ustaw zawartość do kompresji w archiwum.

public void SetSource(string path)

Parameters

path string

Ścieżka do rejestracji do kompresji.

Examples

Otwórz archiwum z pliku przez ścieżkę i wyciągnij go do

using (var archive = new GzipArchive()) 
{
    archive.SetSource("data.bin");
    archive.Save("archive.gz");
}

Exceptions

ArgumentNullException

path’ is null.

SecurityException

Klient nie posiada wymaganego zezwolenia na dostęp.

ArgumentException

Ścieżka " jest pusta, zawiera tylko białe przestrzenie lub zawiera nieprawidłowe znaky.

UnauthorizedAccessException

Dostęp do pliku path" jest odrzucony.

PathTooLongException

Określenie path", nazwa pliku lub obie przekracza maksymalną długość określoną przez system. Na przykład, na platformach opartych na systemie Windows, ścieżki muszą być mniejsze niż 248 znaków, a nazwy plików muszą być mniejsze niż 260 znaków.

NotSupportedException

Plik w path’ zawiera kolumnę (:) w środku paska.

SetSource(TarArchive)

Ustaw zawartość do kompresji w archiwum.

public void SetSource(TarArchive tarArchive)

Parameters

tarArchive TarArchive

Archiwum do kompresji.

Examples

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");
    }
}

Remarks

Użyj tej metody do tworzenia wspólnego archiwum tar.gz.

 Polski