Class GzipArchive
Namespace: Aspose.Zip.Gzip
Assembly: Aspose.Zip.dll (25.1.0)
Esta classe representa um arquivo de arquivo gzip. Use-a para compor ou extrair arquivos gzip.
public class GzipArchive : IArchive, IDisposable, IArchiveFileEntry
Herança
Implementa
IArchive, IDisposable, IArchiveFileEntry
Membros Herdados
object.GetType(), object.MemberwiseClone(), object.ToString(), object.Equals(object?), object.Equals(object?, object?), object.ReferenceEquals(object?, object?), object.GetHashCode()
Observações
O algoritmo de compressão Gzip é baseado no algoritmo DEFLATE, que é uma combinação de LZ77 e codificação Huffman.
Construtores
GzipArchive()
Inicializa uma nova instância da classe Aspose.Zip.Gzip.GzipArchive preparada para compressão.
public GzipArchive()
Exemplos
O exemplo a seguir mostra como comprimir um arquivo.
using (GzipArchive archive = new GzipArchive())
{
archive.SetSource("data.bin");
archive.Save("archive.gz");
}
GzipArchive(Stream, bool)
Inicializa uma nova instância da classe Aspose.Zip.Gzip.GzipArchive preparada para descompressão.
public GzipArchive(Stream sourceStream, bool parseHeader = false)
Parâmetros
sourceStream
Stream
A origem do arquivo.
parseHeader
bool
Se deve analisar o cabeçalho do fluxo para descobrir propriedades, incluindo nome. Faz sentido apenas para fluxos que permitem busca.
Exemplos
Abra um arquivo de arquivo a partir de um fluxo e extraia-o para um MemoryStream
var ms = new MemoryStream();
using (GzipArchive archive = new GzipArchive(File.OpenRead("archive.gz")))
archive.Open().CopyTo(ms);
Observações
Este construtor não descomprime. Veja o método Aspose.Zip.Gzip.GzipArchive.Open para descompressão.
GzipArchive(string, bool)
Inicializa uma nova instância da classe Aspose.Zip.Gzip.GzipArchive.
public GzipArchive(string path, bool parseHeader = false)
Parâmetros
path
string
O caminho para o arquivo de arquivo.
parseHeader
bool
Se deve analisar o cabeçalho do fluxo para descobrir propriedades, incluindo nome. Faz sentido apenas para fluxos que permitem busca.
Exemplos
Abra um arquivo de arquivo pelo caminho e extraia-o para um MemoryStream
var ms = new MemoryStream();
using (GzipArchive archive = new GzipArchive("archive.gz"))
archive.Open().CopyTo(ms);
Observações
Este construtor não descomprime. Veja o método Aspose.Zip.Gzip.GzipArchive.Open para descompressão.
Exceções
path
é nulo.
O chamador não tem a permissão necessária para acessar.
O path
está vazio, contém apenas espaços em branco ou contém caracteres inválidos.
O acesso ao arquivo path
é negado.
O path
, nome do arquivo ou ambos excedem o comprimento máximo definido pelo sistema. Por exemplo, em plataformas baseadas em Windows, os caminhos devem ter menos de 248 caracteres e os nomes de arquivos devem ter menos de 260 caracteres.
O arquivo em path
contém dois pontos (:) no meio da string.
Propriedades
Name
Nome do arquivo original.
public string Name { get; }
Valor da Propriedade
Métodos
Dispose()
Executa tarefas definidas pela aplicação associadas à liberação, liberação ou redefinição de recursos não gerenciados.
public void Dispose()
Dispose(bool)
Executa tarefas definidas pela aplicação associadas à liberação, liberação ou redefinição de recursos não gerenciados.
protected virtual void Dispose(bool disposing)
Parâmetros
disposing
bool
Se os recursos gerenciados devem ser liberados.
Extract(Stream)
Extrai o arquivo para o fluxo fornecido.
public void Extract(Stream destination)
Parâmetros
destination
Stream
Fluxo de destino. Deve ser gravável.
Exemplos
using (var archive = new GzipArchive("archive.gz"))
{
archive.Extract(httpResponseStream);
}
Exceções
destination
não suporta gravação.
O fluxo está corrompido e não contém dados válidos.
Extract(string)
Extrai o arquivo para o arquivo pelo caminho.
public FileInfo Extract(string path)
Parâmetros
path
string
O caminho para o arquivo de destino. Se o arquivo já existir, será sobrescrito.
Retorna
Informações do arquivo extraído.
Exceções
path
é nulo.
O chamador não tem a permissão necessária para acessar.
O path
está vazio, contém apenas espaços em branco ou contém caracteres inválidos.
O acesso ao arquivo path
é negado.
O path
, nome do arquivo ou ambos excedem o comprimento máximo definido pelo sistema. Por exemplo, em plataformas baseadas em Windows, os caminhos devem ter menos de 248 caracteres e os nomes de arquivos devem ter menos de 260 caracteres.
O arquivo em path
contém dois pontos (:) no meio da string.
O fluxo está corrompido e não contém dados válidos.
ExtractToDirectory(string)
Extrai o conteúdo do arquivo para o diretório fornecido.
public void ExtractToDirectory(string destinationDirectory)
Parâmetros
destinationDirectory
string
O caminho para o diretório onde os arquivos extraídos serão colocados.
Observações
Se o diretório não existir, ele será criado.
Exceções
destinationDirectory
é nulo.
O caminho especificado, nome do arquivo ou ambos excedem o comprimento máximo definido pelo sistema. Por exemplo, em plataformas baseadas em Windows, os caminhos devem ter menos de 248 caracteres e os nomes de arquivos devem ter menos de 260 caracteres.
O chamador não tem a permissão necessária para acessar o diretório existente.
Se o diretório não existir, o caminho contém um caractere de dois pontos (:) que não faz parte de um rótulo de unidade (“C:").
destinationDirectory
é uma string de comprimento zero, contém apenas espaços em branco ou contém um ou mais caracteres inválidos. Você pode consultar caracteres inválidos usando o método System.IO.Path.GetInvalidPathChars.
-ou- o caminho é prefixado ou contém apenas um caractere de dois pontos (:).
O diretório especificado pelo caminho é um arquivo. -ou- O nome da rede não é conhecido.
Open()
Abre o arquivo para extração e fornece um fluxo com o conteúdo do arquivo.
public Stream Open()
Retorna
O fluxo que representa o conteúdo do arquivo.
Exemplos
Extrai o arquivo e copia o conteúdo extraído para o fluxo do arquivo.
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);
}
}
Você pode usar o método Stream.CopyTo para .NET 4.0 e superior: `unpacked.CopyTo(extracted);`
Observações
Leia do fluxo para obter o conteúdo original do arquivo. Veja a seção de exemplos.
Save(Stream)
Salva o arquivo no fluxo fornecido.
public void Save(Stream outputStream)
Parâmetros
outputStream
Stream
Fluxo de destino.
Exemplos
Escreve dados comprimidos no fluxo de resposta http.
using (var archive = new GzipArchive())
{
archive.SetSource(new FileInfo("data.bin"));
archive.Save(httpResponse.OutputStream);
}
Observações
outputStream
deve ser gravável.
Exceções
outputStream
não é gravável.
A origem não foi fornecida.
Save(string)
Salva o arquivo no arquivo de destino fornecido.
public void Save(string destinationFileName)
Parâmetros
destinationFileName
string
O caminho do arquivo a ser criado. Se o nome do arquivo especificado aponta para um arquivo existente, ele será sobrescrito.
Exemplos
using (var archive = new GzipArchive())
{
archive.SetSource("data.bin");
archive.Save("archive.gz");
}
Exceções
destinationFileName
é nulo.
O chamador não tem a permissão necessária para acessar.
O destinationFileName
está vazio, contém apenas espaços em branco ou contém caracteres inválidos.
O acesso ao arquivo destinationFileName
é negado.
O destinationFileName
, nome do arquivo ou ambos excedem o comprimento máximo definido pelo sistema. Por exemplo, em plataformas baseadas em Windows, os caminhos devem ter menos de 248 caracteres e os nomes de arquivos devem ter menos de 260 caracteres.
O arquivo em destinationFileName
contém dois pontos (:) no meio da string.
SetSource(Stream)
Define o conteúdo a ser comprimido dentro do arquivo.
public void SetSource(Stream source)
Parâmetros
source
Stream
O fluxo de entrada para o arquivo.
Exemplos
using (var archive = new GzipArchive())
{
archive.SetSource(new MemoryStream(new byte[] { 0x00, 0xFF }));
archive.Save("archive.gz");
}
SetSource(FileInfo)
Define o conteúdo a ser comprimido dentro do arquivo.
public void SetSource(FileInfo fileInfo)
Parâmetros
fileInfo
FileInfo
A referência a um arquivo a ser comprimido.
Exemplos
using (var archive = new GzipArchive())
{
archive.SetSource(new FileInfo("data.bin"));
archive.Save("archive.gz");
}
SetSource(string)
Define o conteúdo a ser comprimido dentro do arquivo.
public void SetSource(string path)
Parâmetros
path
string
Caminho para o arquivo a ser comprimido.
Exemplos
Abra um arquivo de arquivo pelo caminho e extraia-o para um MemoryStream
using (var archive = new GzipArchive())
{
archive.SetSource("data.bin");
archive.Save("archive.gz");
}
Exceções
path
é nulo.
O chamador não tem a permissão necessária para acessar.
O path
está vazio, contém apenas espaços em branco ou contém caracteres inválidos.
O acesso ao arquivo path
é negado.
O path
, nome do arquivo ou ambos excedem o comprimento máximo definido pelo sistema. Por exemplo, em plataformas baseadas em Windows, os caminhos devem ter menos de 248 caracteres e os nomes de arquivos devem ter menos de 260 caracteres.
O arquivo em path
contém dois pontos (:) no meio da string.
SetSource(TarArchive)
Define o conteúdo a ser comprimido dentro do arquivo.
public void SetSource(TarArchive tarArchive)
Parâmetros
tarArchive
TarArchive
Arquivo Tar a ser comprimido.
Exemplos
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");
}
}
Observações
Use este método para compor um arquivo tar.gz conjunto.