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
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
path
jest null.
Wywołujący nie ma wymaganych uprawnień do dostępu.
path
jest pusty, zawiera tylko białe znaki lub zawiera nieprawidłowe znaki.
Dostęp do pliku path
jest zabroniony.
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.
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
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
destination
nie obsługuje zapisu.
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
Informacje o wydobytym pliku.
Wyjątki
path
jest null.
Wywołujący nie ma wymaganych uprawnień do dostępu.
path
jest pusty, zawiera tylko białe znaki lub zawiera nieprawidłowe znaki.
Dostęp do pliku path
jest zabroniony.
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.
Plik w path
zawiera dwukropek (:) w środku ciągu.
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
destinationDirectory
jest null.
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.
Wywołujący nie ma wymaganych uprawnień do dostępu do istniejącego katalogu.
Jeśli katalog nie istnieje, ścieżka zawiera znak dwukropka (:) który nie jest częścią etykiety dysku (“C:").
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 (:).
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
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
outputStream
nie jest zapisywalny.
Ź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
destinationFileName
jest null.
Wywołujący nie ma wymaganych uprawnień do dostępu.
destinationFileName
jest pusty, zawiera tylko białe znaki lub zawiera nieprawidłowe znaki.
Dostęp do pliku destinationFileName
jest zabroniony.
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.
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
path
jest null.
Wywołujący nie ma wymaganych uprawnień do dostępu.
path
jest pusty, zawiera tylko białe znaki lub zawiera nieprawidłowe znaki.
Dostęp do pliku path
jest zabroniony.
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.
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.