Class GzipArchive

Class GzipArchive

Namespace: Aspose.Zip.Gzip
Assembly: Aspose.Zip.dll (25.1.0)

Ta klasa reprezentuje plik archiwum gzip. Użyj jej do tworzenia lub wydobywania archiwów gzip.

public class GzipArchive : IArchive, IDisposable, IArchiveFileEntry

Dziedziczenie

objectGzipArchive

Implementuje

IArchive, IDisposable, IArchiveFileEntry

Członkowie dziedziczeni

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

Uwagi

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

Konstruktory

GzipArchive()

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

public GzipArchive()

Przykłady

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

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

GzipArchive(Stream, bool)

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

public GzipArchive(Stream sourceStream, bool parseHeader = false)

Parametry

sourceStream Stream

Źródło archiwum.

parseHeader bool

Czy analizować nagłówek strumienia, aby ustalić właściwości, w tym nazwę. Ma sens tylko dla strumienia możliwego do przeszukiwania.

Przykłady

Otwórz archiwum ze strumienia i wydobądź je do MemoryStream

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

Uwagi

Ten konstruktor nie dekompresuje. Zobacz metodę Aspose.Zip.Gzip.GzipArchive.Open, aby dekompresować.

GzipArchive(string, bool)

Inicjalizuje nową instancję klasy Aspose.Zip.Gzip.GzipArchive.

public GzipArchive(string path, bool parseHeader = false)

Parametry

path string

Ścieżka do pliku archiwum.

parseHeader bool

Czy analizować nagłówek strumienia, aby ustalić właściwości, w tym nazwę. Ma sens tylko dla strumienia możliwego do przeszukiwania.

Przykłady

Otwórz archiwum z pliku według ścieżki i wydobądź je do MemoryStream

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

Uwagi

Ten konstruktor nie dekompresuje. Zobacz metodę Aspose.Zip.Gzip.GzipArchive.Open, aby dekompresować.

Wyjątki

ArgumentNullException

path jest null.

SecurityException

Wywołujący nie ma wymaganych uprawnień do dostępu.

ArgumentException

path jest pusty, zawiera tylko białe znaki lub zawiera nieprawidłowe znaki.

UnauthorizedAccessException

Dostęp do pliku path jest zabroniony.

PathTooLongException

Określona path, nazwa pliku lub obie przekraczają maksymalną długość zdefiniowaną przez system. Na przykład na platformach opartych na systemie Windows, ścieżki muszą mieć mniej niż 248 znaków, a nazwy plików muszą mieć mniej niż 260 znaków.

NotSupportedException

Plik w path zawiera dwukropek (:) w środku ciągu.

Właściwości

Name

Nazwa oryginalnego pliku.

public string Name { get; }

Wartość właściwości

string

Metody

Dispose()

Wykonuje zadania zdefiniowane przez aplikację związane z zwalnianiem, uwalnianiem lub resetowaniem niezarządzanych zasobów.

public void Dispose()

Dispose(bool)

Wykonuje zadania zdefiniowane przez aplikację związane z zwalnianiem, uwalnianiem lub resetowaniem niezarządzanych zasobów.

protected virtual void Dispose(bool disposing)

Parametry

disposing bool

Czy zarządzane zasoby powinny być zwolnione.

Extract(Stream)

Wydobywa archiwum do podanego strumienia.

public void Extract(Stream destination)

Parametry

destination Stream

Strumień docelowy. Musi być zapisywalny.

Przykłady

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

Wyjątki

ArgumentException

destination nie obsługuje zapisu.

InvalidDataException

Strumień jest uszkodzony i nie zawiera prawidłowych danych.

Extract(string)

Wydobywa archiwum do pliku według ścieżki.

public FileInfo Extract(string path)

Parametry

path string

Ścieżka do pliku docelowego. Jeśli plik już istnieje, zostanie nadpisany.

Zwraca

FileInfo

Informacje o wydobytym pliku.

Wyjątki

ArgumentNullException

path jest null.

SecurityException

Wywołujący nie ma wymaganych uprawnień do dostępu.

ArgumentException

path jest pusty, zawiera tylko białe znaki lub zawiera nieprawidłowe znaki.

UnauthorizedAccessException

Dostęp do pliku path jest zabroniony.

PathTooLongException

Określona path, nazwa pliku lub obie przekraczają maksymalną długość zdefiniowaną przez system. Na przykład na platformach opartych na systemie Windows, ścieżki muszą mieć mniej niż 248 znaków, a nazwy plików muszą mieć mniej niż 260 znaków.

NotSupportedException

Plik w path zawiera dwukropek (:) w środku ciągu.

InvalidDataException

Strumień jest uszkodzony i nie zawiera prawidłowych danych.

ExtractToDirectory(string)

Wydobywa zawartość archiwum do podanego katalogu.

public void ExtractToDirectory(string destinationDirectory)

Parametry

destinationDirectory string

Ścieżka do katalogu, w którym mają być umieszczone wydobyte pliki.

Uwagi

Jeśli katalog nie istnieje, zostanie utworzony.

Wyjątki

ArgumentNullException

destinationDirectory jest null.

PathTooLongException

Określona ścieżka, nazwa pliku lub obie przekraczają maksymalną długość zdefiniowaną przez system. Na przykład na platformach opartych na systemie Windows, ścieżki muszą mieć mniej niż 248 znaków, a nazwy plików muszą mieć mniej niż 260 znaków.

SecurityException

Wywołujący nie ma wymaganych uprawnień do dostępu do istniejącego katalogu.

NotSupportedException

Jeśli katalog nie istnieje, ścieżka zawiera znak dwukropka (:) który nie jest częścią etykiety dysku (“C:").

ArgumentException

destinationDirectory jest ciągiem o zerowej długości, zawiera tylko białe znaki lub zawiera jeden lub więcej nieprawidłowych znaków. Możesz sprawdzić nieprawidłowe znaki, używając metody System.IO.Path.GetInvalidPathChars. -lub- ścieżka jest poprzedzona lub zawiera tylko znak dwukropka (:).

IOException

Katalog określony przez ścieżkę jest plikiem. -lub- Nazwa sieci nie jest znana.

Open()

Otwiera archiwum do dekompresji i udostępnia strumień z zawartością archiwum.

public Stream Open()

Zwraca

Stream

Strumień reprezentujący zawartość archiwum.

Przykłady

Wydobywa archiwum i kopiuje wydobytą zawartość do strumienia pliku.

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.CopyTo(extracted);`

Uwagi

Odczytaj ze strumienia, aby uzyskać oryginalną zawartość pliku. Zobacz sekcję przykładów.

Save(Stream)

Zapisuje archiwum do podanego strumienia.

public void Save(Stream outputStream)

Parametry

outputStream Stream

Strumień docelowy.

Przykłady

Zapisuje skompresowane dane do strumienia odpowiedzi http.

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

Uwagi

outputStream musi być zapisywalny.

Wyjątki

ArgumentException

outputStream nie jest zapisywalny.

InvalidOperationException

Źródło nie zostało dostarczone.

Save(string)

Zapisuje archiwum do podanego pliku docelowego.

public void Save(string destinationFileName)

Parametry

destinationFileName string

Ścieżka archiwum, które ma zostać utworzone. Jeśli określona nazwa pliku wskazuje na istniejący plik, zostanie on nadpisany.

Przykłady

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

Wyjątki

ArgumentNullException

destinationFileName jest null.

SecurityException

Wywołujący nie ma wymaganych uprawnień do dostępu.

ArgumentException

destinationFileName jest pusty, zawiera tylko białe znaki lub zawiera nieprawidłowe znaki.

UnauthorizedAccessException

Dostęp do pliku destinationFileName jest zabroniony.

PathTooLongException

Określona destinationFileName, nazwa pliku lub obie przekraczają maksymalną długość zdefiniowaną przez system. Na przykład na platformach opartych na systemie Windows, ścieżki muszą mieć mniej niż 248 znaków, a nazwy plików muszą mieć mniej niż 260 znaków.

NotSupportedException

Plik w destinationFileName zawiera dwukropek (:) w środku ciągu.

SetSource(Stream)

Ustawia zawartość do skompresowania w archiwum.

public void SetSource(Stream source)

Parametry

source Stream

Strumień wejściowy dla archiwum.

Przykłady

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

SetSource(FileInfo)

Ustawia zawartość do skompresowania w archiwum.

public void SetSource(FileInfo fileInfo)

Parametry

fileInfo FileInfo

Odwołanie do pliku, który ma być skompresowany.

Przykłady

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

SetSource(string)

Ustawia zawartość do skompresowania w archiwum.

public void SetSource(string path)

Parametry

path string

Ścieżka do pliku, który ma być skompresowany.

Przykłady

Otwórz archiwum z pliku według ścieżki i wydobądź je do MemoryStream

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

Wyjątki

ArgumentNullException

path jest null.

SecurityException

Wywołujący nie ma wymaganych uprawnień do dostępu.

ArgumentException

path jest pusty, zawiera tylko białe znaki lub zawiera nieprawidłowe znaki.

UnauthorizedAccessException

Dostęp do pliku path jest zabroniony.

PathTooLongException

Określona path, nazwa pliku lub obie przekraczają maksymalną długość zdefiniowaną przez system. Na przykład na platformach opartych na systemie Windows, ścieżki muszą mieć mniej niż 248 znaków, a nazwy plików muszą mieć mniej niż 260 znaków.

NotSupportedException

Plik w path zawiera dwukropek (:) w środku ciągu.

SetSource(TarArchive)

Ustawia zawartość do skompresowania w archiwum.

public void SetSource(TarArchive tarArchive)

Parametry

tarArchive TarArchive

Archiwum Tar do skompresowania.

Przykłady

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

Uwagi

Użyj tej metody, aby skomponować wspólne archiwum tar.gz.

 Polski