Class GzipArchive
Namespace: Aspose.Zip.Gzip
Assembly: Aspose.Zip.dll (25.1.0)
Esta clase representa un archivo de archivo gzip. Úselo para componer o extraer archivos gzip.
public class GzipArchive : IArchive, IDisposable, IArchiveFileEntry
Herencia
Implementa
IArchive, IDisposable, IArchiveFileEntry
Miembros heredados
object.GetType(), object.MemberwiseClone(), object.ToString(), object.Equals(object?), object.Equals(object?, object?), object.ReferenceEquals(object?, object?), object.GetHashCode()
Observaciones
El algoritmo de compresión Gzip se basa en el algoritmo DEFLATE, que es una combinación de LZ77 y codificación Huffman.
Constructores
GzipArchive()
Inicializa una nueva instancia de la clase Aspose.Zip.Gzip.GzipArchive preparada para comprimir.
public GzipArchive()
Ejemplos
El siguiente ejemplo muestra cómo comprimir un archivo.
using (GzipArchive archive = new GzipArchive())
{
archive.SetSource("data.bin");
archive.Save("archive.gz");
}
GzipArchive(Stream, bool)
Inicializa una nueva instancia de la clase Aspose.Zip.Gzip.GzipArchive preparada para descomprimir.
public GzipArchive(Stream sourceStream, bool parseHeader = false)
Parámetros
sourceStream
Stream
La fuente del archivo.
parseHeader
bool
Si se debe analizar el encabezado del flujo para determinar propiedades, incluido el nombre. Tiene sentido solo para flujos que se pueden buscar.
Ejemplos
Abre un archivo desde un flujo y lo extrae a un MemoryStream
var ms = new MemoryStream();
using (GzipArchive archive = new GzipArchive(File.OpenRead("archive.gz")))
archive.Open().CopyTo(ms);
Observaciones
Este constructor no descomprime. Consulte el método Aspose.Zip.Gzip.GzipArchive.Open para descomprimir.
GzipArchive(string, bool)
Inicializa una nueva instancia de la clase Aspose.Zip.Gzip.GzipArchive.
public GzipArchive(string path, bool parseHeader = false)
Parámetros
path
string
La ruta al archivo de archivo.
parseHeader
bool
Si se debe analizar el encabezado del flujo para determinar propiedades, incluido el nombre. Tiene sentido solo para flujos que se pueden buscar.
Ejemplos
Abre un archivo desde la ruta y lo extrae a un MemoryStream
var ms = new MemoryStream();
using (GzipArchive archive = new GzipArchive("archive.gz"))
archive.Open().CopyTo(ms);
Observaciones
Este constructor no descomprime. Consulte el método Aspose.Zip.Gzip.GzipArchive.Open para descomprimir.
Excepciones
path
es nulo.
El llamador no tiene el permiso requerido para acceder.
El path
está vacío, contiene solo espacios en blanco o contiene caracteres no válidos.
El acceso al archivo path
está denegado.
La path
, el nombre del archivo o ambos exceden la longitud máxima definida por el sistema. Por ejemplo, en plataformas basadas en Windows, las rutas deben tener menos de 248 caracteres y los nombres de archivo deben tener menos de 260 caracteres.
El archivo en path
contiene dos puntos (:) en medio de la cadena.
Propiedades
Name
Nombre del archivo original.
public string Name { get; }
Valor de la propiedad
Métodos
Dispose()
Realiza tareas definidas por la aplicación asociadas con la liberación, liberación o reinicio de recursos no administrados.
public void Dispose()
Dispose(bool)
Realiza tareas definidas por la aplicación asociadas con la liberación, liberación o reinicio de recursos no administrados.
protected virtual void Dispose(bool disposing)
Parámetros
disposing
bool
Si los recursos administrados deben ser liberados.
Extract(Stream)
Extrae el archivo al flujo proporcionado.
public void Extract(Stream destination)
Parámetros
destination
Stream
Flujo de destino. Debe ser escribible.
Ejemplos
using (var archive = new GzipArchive("archive.gz"))
{
archive.Extract(httpResponseStream);
}
Excepciones
destination
no admite escritura.
El flujo está dañado y no contiene datos válidos.
Extract(string)
Extrae el archivo al archivo por la ruta.
public FileInfo Extract(string path)
Parámetros
path
string
La ruta al archivo de destino. Si el archivo ya existe, será sobrescrito.
Devuelve
Información del archivo extraído.
Excepciones
path
es nulo.
El llamador no tiene el permiso requerido para acceder.
El path
está vacío, contiene solo espacios en blanco o contiene caracteres no válidos.
El acceso al archivo path
está denegado.
La path
, el nombre del archivo o ambos exceden la longitud máxima definida por el sistema. Por ejemplo, en plataformas basadas en Windows, las rutas deben tener menos de 248 caracteres y los nombres de archivo deben tener menos de 260 caracteres.
El archivo en path
contiene dos puntos (:) en medio de la cadena.
El flujo está dañado y no contiene datos válidos.
ExtractToDirectory(string)
Extrae el contenido del archivo al directorio proporcionado.
public void ExtractToDirectory(string destinationDirectory)
Parámetros
destinationDirectory
string
La ruta al directorio donde se colocarán los archivos extraídos.
Observaciones
Si el directorio no existe, se creará.
Excepciones
destinationDirectory
es nulo.
La ruta especificada, el nombre del archivo o ambos exceden la longitud máxima definida por el sistema. Por ejemplo, en plataformas basadas en Windows, las rutas deben tener menos de 248 caracteres y los nombres de archivo deben tener menos de 260 caracteres.
El llamador no tiene el permiso requerido para acceder al directorio existente.
Si el directorio no existe, la ruta contiene un carácter de dos puntos (:) que no es parte de una etiqueta de unidad (“C:").
destinationDirectory
es una cadena de longitud cero, contiene solo espacios en blanco o contiene uno o más caracteres no válidos. Puede consultar los caracteres no válidos utilizando el método System.IO.Path.GetInvalidPathChars.
-o- la ruta está precedida por, o contiene, solo un carácter de dos puntos (:).
El directorio especificado por la ruta es un archivo. -o- El nombre de red no es conocido.
Open()
Abre el archivo para extracción y proporciona un flujo con el contenido del archivo.
public Stream Open()
Devuelve
El flujo que representa el contenido del archivo.
Ejemplos
Extrae el archivo y copia el contenido extraído al flujo de archivo.
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);
}
}
Puede usar el método Stream.CopyTo para .NET 4.0 y superior: `unpacked.CopyTo(extracted);`
Observaciones
Lea desde el flujo para obtener el contenido original del archivo. Consulte la sección de ejemplos.
Save(Stream)
Guarda el archivo en el flujo proporcionado.
public void Save(Stream outputStream)
Parámetros
outputStream
Stream
Flujo de destino.
Ejemplos
Escribe datos comprimidos en el flujo de respuesta http.
using (var archive = new GzipArchive())
{
archive.SetSource(new FileInfo("data.bin"));
archive.Save(httpResponse.OutputStream);
}
Observaciones
outputStream
debe ser escribible.
Excepciones
outputStream
no es escribible.
No se ha suministrado la fuente.
Save(string)
Guarda el archivo en el archivo de destino proporcionado.
public void Save(string destinationFileName)
Parámetros
destinationFileName
string
La ruta del archivo que se creará. Si el nombre de archivo especificado apunta a un archivo existente, será sobrescrito.
Ejemplos
using (var archive = new GzipArchive())
{
archive.SetSource("data.bin");
archive.Save("archive.gz");
}
Excepciones
destinationFileName
es nulo.
El llamador no tiene el permiso requerido para acceder.
El destinationFileName
está vacío, contiene solo espacios en blanco o contiene caracteres no válidos.
El acceso al archivo destinationFileName
está denegado.
El destinationFileName
, el nombre del archivo o ambos exceden la longitud máxima definida por el sistema. Por ejemplo, en plataformas basadas en Windows, las rutas deben tener menos de 248 caracteres y los nombres de archivo deben tener menos de 260 caracteres.
El archivo en destinationFileName
contiene un carácter de dos puntos (:) en medio de la cadena.
SetSource(Stream)
Establece el contenido que se va a comprimir dentro del archivo.
public void SetSource(Stream source)
Parámetros
source
Stream
El flujo de entrada para el archivo.
Ejemplos
using (var archive = new GzipArchive())
{
archive.SetSource(new MemoryStream(new byte[] { 0x00, 0xFF }));
archive.Save("archive.gz");
}
SetSource(FileInfo)
Establece el contenido que se va a comprimir dentro del archivo.
public void SetSource(FileInfo fileInfo)
Parámetros
fileInfo
FileInfo
La referencia a un archivo que se va a comprimir.
Ejemplos
using (var archive = new GzipArchive())
{
archive.SetSource(new FileInfo("data.bin"));
archive.Save("archive.gz");
}
SetSource(string)
Establece el contenido que se va a comprimir dentro del archivo.
public void SetSource(string path)
Parámetros
path
string
Ruta al archivo que se va a comprimir.
Ejemplos
Abre un archivo desde la ruta y lo extrae a un MemoryStream
using (var archive = new GzipArchive())
{
archive.SetSource("data.bin");
archive.Save("archive.gz");
}
Excepciones
path
es nulo.
El llamador no tiene el permiso requerido para acceder.
El path
está vacío, contiene solo espacios en blanco o contiene caracteres no válidos.
El acceso al archivo path
está denegado.
El path
, el nombre del archivo o ambos exceden la longitud máxima definida por el sistema. Por ejemplo, en plataformas basadas en Windows, las rutas deben tener menos de 248 caracteres y los nombres de archivo deben tener menos de 260 caracteres.
El archivo en path
contiene un carácter de dos puntos (:) en medio de la cadena.
SetSource(TarArchive)
Establece el contenido que se va a comprimir dentro del archivo.
public void SetSource(TarArchive tarArchive)
Parámetros
tarArchive
TarArchive
Archivo tar que se va a comprimir.
Ejemplos
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");
}
}
Observaciones
Utilice este método para componer un archivo tar.gz conjunto.