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
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
sourceStream’ is null.
sourceStream’ is too short.
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
path’ is null.
Klient nie posiada wymaganego zezwolenia na dostęp.
Ścieżka " jest pusta, zawiera tylko białe przestrzenie lub zawiera nieprawidłowe znaky.
Dostęp do pliku path" jest odrzucony.
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.
Plik w path’ zawiera kolumnę (:) w środku paska.
Plik jest zbyt krótki.
Dane zawarte w pliku mają niewłaściwy podpis.
Properties
Name
Nazwa oryginalnego pliku.
public string Name { get; }
Wartość nieruchomości
UncompressedSize
Otrzymuje rozmiar oryginalnego pliku.
public ulong UncompressedSize { get; }
Wartość nieruchomości
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
destination’ does not support writing.
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
Informacje o wydanych plikach.
Exceptions
path’ is null.
Klient nie posiada wymaganego zezwolenia na dostęp.
Ścieżka " jest pusta, zawiera tylko białe przestrzenie lub zawiera nieprawidłowe znaky.
Dostęp do pliku path" jest odrzucony.
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.
Plik w path’ zawiera kolumnę (:) w środku paska.
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
destinationDirectory’ is null.
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.
Odwołujący nie posiada wymaganej pozwolenia na dostęp do istniejącego katalogu.
Jeśli dyrektywa nie istnieje, ścieżka zawiera znak kolumny (:) który nie jest częścią etykiety napędu (“C:”).
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 (:).
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
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
outputStream’ is not writable.
Ź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
destinationFileName’ is null.
Klient nie posiada wymaganego zezwolenia na dostęp.
destinationFileName’ jest pusta, zawiera tylko białe przestrzenie lub zawiera nieprawidłowe znaky.
Dostęp do pliku destinationFileName’ jest odrzucony.
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.
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
path’ is null.
Klient nie posiada wymaganego zezwolenia na dostęp.
Ścieżka " jest pusta, zawiera tylko białe przestrzenie lub zawiera nieprawidłowe znaky.
Dostęp do pliku path" jest odrzucony.
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.
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.