Class Archive

Class Archive

Nombre del espacio: Aspose.Zip Asamblea: Aspose.Zip.dll (25.5.0)

Esta clase representa un archivo zip. Utilice para compilar, extraer o actualizar archivos zip .

public class Archive : IArchive, IDisposable

Inheritance

object Archive

Implements

IArchive ,y, IDisposable

Miembros heredados

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

Constructors

Archive(ArchiveEntrySettings)

Inicia una nueva instancia de la clase Aspose.Zip.Archive con configuraciones opcionales para sus entradas.

public Archive(ArchiveEntrySettings newEntrySettings = null)

Parameters

newEntrySettings ArchiveEntrySettings

Las configuraciones de compresión y cifrado utilizadas para los artículos de Aspose.Zip.ArchiveEntry recientemente añadidos.Si no se especificó, se utilizaría la composición de Deflate más común sin cifrado.

Examples

El siguiente ejemplo muestra cómo comprimir un solo archivo con la configuración predeterminada.

using (FileStream zipFile = File.Open("archive.zip", FileMode.Create))
{
    using (var archive = new Archive())
    {
        archive.CreateEntry("data.bin", "file.dat");
        archive.Save(zipFile);
    }
}

Archive(Arquitectura, Arquitectura, ArchivoEntrySettings)

Inicializa una nueva instancia de la clase Aspose.Zip.Archive y compone una lista de entradas que se puede extraer del archivo.

public Archive(Stream sourceStream, ArchiveLoadOptions loadOptions = null, ArchiveEntrySettings newEntrySettings = null)

Parameters

sourceStream Stream

La fuente del archivo.

loadOptions ArchiveLoadOptions

Opciones para cargar archivos existentes con.

newEntrySettings ArchiveEntrySettings

Las configuraciones de compresión y cifrado utilizadas para los artículos de Aspose.Zip.ArchiveEntry recientemente añadidos.Si no se especificó, se utilizaría la composición de Deflate más común sin cifrado.

Examples

El siguiente ejemplo extrae un archivo cifrado, luego descomprende la primera entrada a un.

var fs = File.OpenRead("encrypted.zip");
var extracted = new MemoryStream();
using (Archive archive = new Archive(fs, new ArchiveLoadOptions() { DecryptionPassword = "p@s$" }))
{
    using (var decompressed = archive.Entries[0].Open())
    {
        byte[] b = new byte[8192];
        int bytesRead;
        while (0 < (bytesRead = decompressed.Read(b, 0, b.Length)))
            extracted.Write(b, 0, bytesRead);
    }
}

Remarks

Este constructor no descomprime ninguna entrada. ver Aspose.Zip.ArchiveEntry.Open(System.String) método para descomprimir.

Exceptions

ArgumentException

sourceStream’ is not seekable.

InvalidDataException

El encryptor para AES contradice el método de compresión WinZip.

Archive(Archivos, Archivos, ArchivosEntrySettings)

Inicializa una nueva instancia de la clase Aspose.Zip.Archive y compone una lista de entradas que se puede extraer del archivo.

public Archive(string path, ArchiveLoadOptions loadOptions = null, ArchiveEntrySettings newEntrySettings = null)

Parameters

path string

El completo cualificado o el camino relativo al archivo.

loadOptions ArchiveLoadOptions

Opciones para cargar archivos existentes con.

newEntrySettings ArchiveEntrySettings

Las configuraciones de compresión y cifrado utilizadas para los artículos de Aspose.Zip.ArchiveEntry recientemente añadidos.Si no se especificó, se utilizaría la composición de Deflate más común sin cifrado.

Examples

El siguiente ejemplo extrae un archivo cifrado, luego descomprende la primera entrada a un.

var extracted = new MemoryStream();
using (Archive archive = new Archive("encrypted.zip", new ArchiveLoadOptions() { DecryptionPassword = "p@s$" }))
{
    using (var decompressed = archive.Entries[0].Open())
    {
        byte[] b = new byte[8192];
        int bytesRead;
        while (0 < (bytesRead = decompressed.Read(b, 0, b.Length)))
            extracted.Write(b, 0, bytesRead);
    }
}

Remarks

Este constructor no descomprime ninguna entrada. ver Aspose.Zip.ArchiveEntry.Open(System.String) método para descomprimir.

Exceptions

ArgumentNullException

path’ is null.

SecurityException

El solicitante no tiene la autorización necesaria para acceder.

ArgumentException

El path’ es vacío, contiene solo espacios blancos, o contiene caracteres invalidos.

UnauthorizedAccessException

Se denega el acceso al archivo path.

PathTooLongException

La ruta path", nombre de archivo, o ambos superan la longitud máxima definida por el sistema. Por ejemplo, en las plataformas basadas en Windows, los caminos deben ser menos de 248 caracteres, y los nombres de archivo deben ser menos de 260 caracteres.

NotSupportedException

El archivo en path’ contiene una columna (:) en el medio de la línea.

FileNotFoundException

El archivo no se encuentra.

DirectoryNotFoundException

La ruta especificada es invalida, como estar en un disco no mapeado.

IOException

El archivo ya está abierto.

InvalidDataException

El archivo está corrompido.

Archive(Título, Título[][], Archivo Opciones)

Inicia una nueva instancia de la clase Aspose.Zip.Archive desde el archivo zip multi-volumen y compone una lista de entradas que se puede extraer del archivo.

public Archive(string mainSegment, string[] segmentsInOrder, ArchiveLoadOptions loadOptions = null)

Parameters

mainSegment string

Paseo al último segmento de archivo multi-volumen con el directorio central.

Por lo general, este segmento tiene una extensión *.zip y más pequeña que otros.

segmentsInOrder string [][]

Pasos a cada segmento pero el último de varios volúmenes de archivo zip respetando el orden.

Normalmente se llaman filename.z01, filename.z02, …, filename.z(n-1).

loadOptions ArchiveLoadOptions

Opciones para cargar archivos existentes con.

Examples

Esta muestra extrae a un directorio un archivo de tres segmentos.

using (Archive a = new Archive("archive.zip", new string[] { "archive.z01", "archive.z02" }))
{
    a.ExtractToDirectory("destination");
}

Exceptions

EndOfStreamException

No se pueden cargar header ZIP porque los archivos proporcionados son corruptos.

Properties

Entries

Obtenga entradas del tipo Aspose.Zip.ArchiveEntry que constituye el archivo.

public ReadOnlyCollection<archiveentry> Entries { get; }

Valor de la propiedad

ReadOnlyCollection &ylt; ArchiveEntry >

NewEntrySettings

Las configuraciones de compresión y cifrado utilizadas para los artículos de Aspose.Zip.ArchiveEntry recientemente añadidos.

public ArchiveEntrySettings NewEntrySettings { get; }

Valor de la propiedad

ArchiveEntrySettings

Methods

CreateEntries(Siguiente Entrada siguiente: Bool)

Añadir todos los archivos y directorios de forma recurrente en el directorio dado.

public Archive CreateEntries(DirectoryInfo directory, bool includeRootDirectory = true)

Parameters

directory DirectoryInfo

Directorios para compresión.

includeRootDirectory bool

Indica si incluir el directorio de raíz mismo o no.

Returns

Archive

El archivo con entradas compuestas.

Examples

using (Archive archive = new Archive())
{
    DirectoryInfo folder = new DirectoryInfo("C:\folder");
    archive.CreateEntries(folder);
    archive.Save("folder.zip");
}

Exceptions

DirectoryNotFoundException

El camino a la directory’ es invalido, como estar en un disco no mapeado.

SecurityException

El llamador no tiene el permiso necesario para acceder a la directory'.

CreateEntries(Cortesía, Bool)

Añadir todos los archivos y directorios de forma recurrente en el directorio dado.

public Archive CreateEntries(string sourceDirectory, bool includeRootDirectory = true)

Parameters

sourceDirectory string

Directorios para compresión.

includeRootDirectory bool

Indica si incluir el directorio de raíz mismo o no.

Returns

Archive

El archivo con entradas compuestas.

Examples

using (Archive archive = new Archive())
{
    archive.CreateEntries("C:\folder");
    archive.Save("folder.zip");
}

CreateEntry(Pintura, Pintura, Pintura, ArchivoEntrySettings)

Crea una entrada única dentro del archivo.

public ArchiveEntry CreateEntry(string name, string path, bool openImmediately = false, ArchiveEntrySettings newEntrySettings = null)

Parameters

name string

El nombre de la entrada.

path string

El nombre totalmente cualificado del nuevo archivo, o el nombre de archivo relativo que se comprime.

openImmediately bool

Es cierto, si se abre el archivo de inmediato, de lo contrario se abre el archivo en el archivo de almacenamiento.

newEntrySettings ArchiveEntrySettings

Las configuraciones de compresión y cifrado utilizadas para agregar el elemento Aspose.Zip.ArchiveEntry.

Returns

ArchiveEntry

Introducción de Zip.

Examples

using (FileStream zipFile = File.Open("archive.zip", FileMode.Create))
{
    using (var archive = new Archive())
    {
        archive.CreateEntry("data.bin", "file.dat");
        archive.Save(zipFile);
    }
}

Remarks

El nombre de entrada se establece únicamente dentro del parámetro.El nombre de archivo proporcionado en el parámetro no afecta al nombre de entrada.

Si el archivo se abre inmediatamente con el parámetro se bloquea hasta que el archivo se salva.

Exceptions

ArgumentNullException

path’ is null.

SecurityException

El solicitante no tiene la autorización necesaria para acceder.

ArgumentException

El path’ es vacío, contiene solo espacios blancos, o contiene caracteres invalidos.

UnauthorizedAccessException

Se denega el acceso al archivo path.

PathTooLongException

La ruta path", nombre de archivo, o ambos superan la longitud máxima definida por el sistema. Por ejemplo, en las plataformas basadas en Windows, los caminos deben ser menos de 248 caracteres, y los nombres de archivo deben ser menos de 260 caracteres.

NotSupportedException

El archivo en path’ contiene una columna (:) en el medio de la línea.

CreateEntry(Título, Título, ArchivoEntrySettings)

Crea una entrada única dentro del archivo.

public ArchiveEntry CreateEntry(string name, Stream source, ArchiveEntrySettings newEntrySettings = null)

Parameters

name string

El nombre de la entrada.

source Stream

El flujo de entrada para la entrada.

newEntrySettings ArchiveEntrySettings

Las configuraciones de compresión y cifrado utilizadas para agregar el elemento Aspose.Zip.ArchiveEntry.

Returns

ArchiveEntry

Introducción de Zip.

Examples

using (var archive = new Archive(new ArchiveEntrySettings(null, new AesEcryptionSettings("p@s$", EncryptionMethod.AES256))))
{
    archive.CreateEntry("data.bin", new MemoryStream(new byte[] {0x00, 0xFF} ));
    archive.Save("archive.zip");
}

CreateEntry(archivo, archivo, archivo, archivoEntrySettings)

Crea una entrada única dentro del archivo.

public ArchiveEntry CreateEntry(string name, FileInfo fileInfo, bool openImmediately = false, ArchiveEntrySettings newEntrySettings = null)

Parameters

name string

El nombre de la entrada.

fileInfo FileInfo

Los metadatos del archivo deben ser comprimidos.

openImmediately bool

Es cierto, si se abre el archivo de inmediato, de lo contrario se abre el archivo en el archivo de almacenamiento.

newEntrySettings ArchiveEntrySettings

Las configuraciones de compresión y cifrado utilizadas para agregar el elemento Aspose.Zip.ArchiveEntry.

Returns

ArchiveEntry

Introducción de Zip.

Examples

Componer archivos con entradas cifradas con diferentes métodos de cifrado y contraseñas cada uno.

using (FileStream zipFile = File.Open("archive.zip", FileMode.Create))
{
    FileInfo fi1 = new FileInfo("data1.bin");
    FileInfo fi2 = new FileInfo("data2.bin");
    FileInfo fi3 = new FileInfo("data3.bin");
    using (var archive = new Archive())
    {
        archive.CreateEntry("entry1.bin", fi1, false, new ArchiveEntrySettings(new DeflateCompressionSettings(), new TraditionalEncryptionSettings("pass1")));
        archive.CreateEntry("entry2.bin", fi2, false, new ArchiveEntrySettings(new DeflateCompressionSettings(), new AesEcryptionSettings("pass2", EncryptionMethod.AES128)));
        archive.CreateEntry("entry3.bin", fi3, false, new ArchiveEntrySettings(new DeflateCompressionSettings(), new AesEcryptionSettings("pass3", EncryptionMethod.AES256)));
        archive.Save(zipFile);
    }
}

Remarks

El nombre de entrada se establece únicamente dentro del parámetro.El nombre de archivo proporcionado en el parámetro no afecta al nombre de entrada.

Si el archivo se abre inmediatamente con el parámetro se bloquea hasta que el archivo se salva.

Exceptions

UnauthorizedAccessException

fileInfo’ is read-only or is a directory.

DirectoryNotFoundException

La ruta especificada es invalida, como estar en un disco no mapeado.

IOException

El archivo ya está abierto.

CreateEntry(Archivo, ArchivoEntrySettings, ArchivoEntrySettings)

Crea una entrada única dentro del archivo.

public ArchiveEntry CreateEntry(string name, Stream source, ArchiveEntrySettings newEntrySettings, FileSystemInfo fileInfo)

Parameters

name string

El nombre de la entrada.

source Stream

El flujo de entrada para la entrada.

newEntrySettings ArchiveEntrySettings

Las configuraciones de compresión y cifrado utilizadas para agregar el elemento Aspose.Zip.ArchiveEntry.

fileInfo FileSystemInfo

Los metadatos del archivo o de la carpeta para ser comprimido.

Returns

ArchiveEntry

Introducción de Zip.

Examples

Componer archivo con entrada cifrada.

using (FileStream zipFile = File.Open("archive.zip", FileMode.Create))
{
    using (var archive = new Archive())
    {
        archive.CreateEntry("entry1.bin", new MemoryStream(new byte[] {0x00, 0xFF} ), new ArchiveEntrySettings(new DeflateCompressionSettings(), new TraditionalEncryptionSettings("pass1")), new FileInfo("data1.bin")); 
        archive.Save(zipFile);
    }
}

Remarks

El nombre de entrada se establece únicamente dentro del parámetro.El nombre de archivo proporcionado en el parámetro no afecta al nombre de entrada.

puede referirse a System.IO.DirectoryInfo si la entrada es directorio.

Exceptions

InvalidOperationException

Tanto source’ y fileInfo’ son null o source’ es null y fileInfo’ es para directorio.

CreateEntry(Título: Func , ArchivoEntrySettings)

Crea una entrada única dentro del archivo.

public ArchiveEntry CreateEntry(string name, Func<stream> streamProvider, ArchiveEntrySettings newEntrySettings = null)

Parameters

name string

El nombre de la entrada.

streamProvider Func &ylt; Stream >

El método que proporciona flujo de entrada para la entrada.

newEntrySettings ArchiveEntrySettings

Las configuraciones de compresión y cifrado utilizadas para agregar el elemento Aspose.Zip.ArchiveEntry.

Returns

ArchiveEntry

Introducción de Zip.

Examples

Componer archivo con entrada cifrada.

System.Func&lt;Stream&gt; provider = delegate(){ return new MemoryStream(new byte[]{0xFF, 0x00}); };
using (FileStream zipFile = File.Open("archive.zip", FileMode.Create))
{
    using (var archive = new Archive())
    {
        archive.CreateEntry("entry1.bin", provider, new ArchiveEntrySettings(new DeflateCompressionSettings(), new TraditionalEncryptionSettings("pass1")))); 
        archive.Save(zipFile);
    }
}

Remarks

Este método es para .NET Framework 4.0 y superior y para .NET Standard 2.0 versión.

DeleteEntry(ArchiveEntry)

Elimina la primera aparición de la entrada específica de la lista de entrada.

public Archive DeleteEntry(ArchiveEntry entry)

Parameters

entry ArchiveEntry

La entrada a eliminar de la lista de entradas.

Returns

Archive

El archivo con la entrada fue eliminado.

Examples

Aquí está cómo puedes eliminar todas las entradas excepto la última:

using (var archive = new Archive("archive.zip"))
{
    while (archive.Entries.Count &gt; 1)
        archive.DeleteEntry(archive.Entries[0]);
    archive.Save("last_entry.zip");
}

Exceptions

ObjectDisposedException

El archivo está eliminado.

DeleteEntry(Int)

Elimina la entrada de la lista de entrada por índice.

public Archive DeleteEntry(int entryIndex)

Parameters

entryIndex int

El índice basado en cero de la entrada a eliminar.

Returns

Archive

El archivo con la entrada fue eliminado.

Examples

using (var archive = new TarArchive("two_files.zip"))
{
    archive.DeleteEntry(0);
    archive.Save("single_file.zip");
}

Exceptions

ObjectDisposedException

Los archivos están eliminados.

ArgumentOutOfRangeException

entryIndex’ is less than 0.-or- entryIndex’ is equal to or greater than ‘Entries’ count.

Dispose()

Desempeña tareas definidas por la aplicación asociadas con la liberación, liberación o restablecimiento de recursos no gestionados.

public void Dispose()

Dispose(BOOL)

Desempeña tareas definidas por la aplicación asociadas con la liberación, liberación o restablecimiento de recursos no gestionados.

protected virtual void Dispose(bool disposing)

Parameters

disposing bool

Los recursos gestionados deben ser eliminados.

ExtractToDirectory(El string)

Extracta todos los archivos en el directorio proporcionado.

public void ExtractToDirectory(string destinationDirectory)

Parameters

destinationDirectory string

El camino hacia el directorio para colocar los archivos extraídos.

Examples

using (var archive = new Archive("archive.zip")) 
{ 
   archive.ExtractToDirectory("C:\extracted");
}

Remarks

Si el directorio no existe, se crear.

Exceptions

ArgumentNullException

destinationDirectory’ is null.

PathTooLongException

Por ejemplo, en las plataformas basadas en Windows, los caminos deben ser menos de 248 caracteres y los nombres de archivo deben ser menos de 260 caracteres.

SecurityException

El llamador no tiene el permiso necesario para acceder al directorio existente.

NotSupportedException

Si el directorio no existe, el camino contiene un carácter colon (:) que no forma parte de una etiqueta de disco (“C:”).

ArgumentException

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 (:).

IOException

El directorio especificado por ruta es un archivo. -o- El nombre de red no es conocido.

InvalidDataException

La contraseña errónea ha sido suministrada. - o - Archivo está corrompido.

Save(Arquitectura, ArchivoSaveOptions)

Salva archivos a la corriente proporcionada.

public void Save(Stream outputStream, ArchiveSaveOptions saveOptions = null)

Parameters

outputStream Stream

El flujo de destino.

saveOptions ArchiveSaveOptions

Opciones para ahorrar archivos.

Examples

using (FileStream zipFile = File.Open("archive.zip", FileMode.Create))
{
    using (var archive = new Archive())
    {
        archive.CreateEntry("entry.bin", "data.bin");
        archive.Save(zipFile);
    }
}

Remarks

Debe ser escrito.

Exceptions

ArgumentException

outputStream’ is not writable.

ObjectDisposedException

El archivo está eliminado.

Save(Archivo, ArchivoSaveOptions)

Salva archivo al archivo de destino proporcionado.

public void Save(string destinationFileName, ArchiveSaveOptions saveOptions = null)

Parameters

destinationFileName string

Si el nombre de archivo especificado indica a un archivo existente, se reescribir.

saveOptions ArchiveSaveOptions

Opciones para ahorrar archivos.

Examples

using (var archive = new Archive())
{
    archive.CreateEntry("entry.bin", "data.bin");
    archive.Save("archive.zip",  new ArchiveSaveOptions() { Encoding = Encoding.ASCII });
}

Remarks

Es posible guardar un archivo en el mismo camino que fue cargado de. sin embargo, esto no se recomienda porque este enfoque utiliza la copia a un archivo temporal.

Exceptions

ArgumentNullException

destinationFileName’ is null.

SecurityException

El solicitante no tiene la autorización necesaria para acceder.

ArgumentException

El destinationFileName’ es vacío, contiene solo espacios blancos, o contiene caracteres invalidos.

UnauthorizedAccessException

Se denega el acceso al archivo destinationFileName.

PathTooLongException

La destinationFileName’, nombre de archivo, o ambos superan la longitud máxima definida por el sistema.Por ejemplo, en las plataformas basadas en Windows, los caminos deben ser menos de 248 caracteres, y los nombres de archivo deben ser menos de 260 caracteres.

NotSupportedException

El archivo en la destinationFileName’ contiene una columna (:) en el medio de la línea.

FileNotFoundException

El archivo no se encuentra.

DirectoryNotFoundException

La ruta especificada es invalida, como estar en un disco no mapeado.

IOException

El archivo ya está abierto.

SaveSplit(Síntomas, SplitArchiveSaveOptions)

Salva el archivo de varios volúmenes a la guía de destino proporcionada.

public void SaveSplit(string destinationDirectory, SplitArchiveSaveOptions options)

Parameters

destinationDirectory string

El camino hacia el directorio donde se crean los segmentos de archivo.

options SplitArchiveSaveOptions

Opciones de almacenamiento de archivos, incluido el nombre de archivo.

Examples

using (Archive archive = new Archive())
{
    archive.CreateEntry("entry.bin", "data.bin");
    archive.SaveSplit(@"C:\Folder",  new SplitArchiveSaveOptions("volume", 65536));
}

Remarks

Este método compone varios () archivos filename.z01, filename.z02, …, filename.z(n-1), filename.zip.

No se puede hacer archivos existentes multi-volumen.

Exceptions

InvalidOperationException

Este archivo fue abierto desde la fuente existente.

NotSupportedException

Este archivo es comprimido con el método XZ y cifrado.

ArgumentNullException

destinationDirectory’ is null.

SecurityException

El llamador no tiene el permiso necesario para acceder al directorio.

ArgumentException

destinationDirectory’ contains invalid characters such as “, >, <, or |.

PathTooLongException

El camino especificado supera la longitud máxima definida por el sistema.

ObjectDisposedException

El archivo está eliminado.

 Español