Archive.Archive

Archive(ArchiveEntrySettings)

Inicializa una nueva instancia delArchive clase con configuraciones opcionales para sus entradas.

public Archive(ArchiveEntrySettings newEntrySettings = null)
ParámetroEscribeDescripción
newEntrySettingsArchiveEntrySettingsConfiguraciones de compresión y encriptación usadas para recién agregadosArchiveEntry items. Si no se especifica, se usará la compresión Deflate sin cifrado más común.

Ejemplos

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);
    }
}

Ver también


Archive(Stream, ArchiveLoadOptions, ArchiveEntrySettings)

Inicializa una nueva instancia delArchive La lista de entradas de clases y composiciones se puede extraer del archivo.

public Archive(Stream sourceStream, ArchiveLoadOptions loadOptions = null, 
    ArchiveEntrySettings newEntrySettings = null)
ParámetroEscribeDescripción
sourceStreamStreamLa fuente del archivo.
loadOptionsArchiveLoadOptionsOpciones para cargar el archivo existente.
newEntrySettingsArchiveEntrySettingsConfiguraciones de compresión y encriptación usadas para recién agregadosArchiveEntry items. Si no se especifica, se usará la compresión Deflate sin cifrado más común.

Excepciones

excepcióncondición
ArgumentExceptionsourceStream no es buscable.
InvalidDataExceptionEl encabezado de cifrado para AES contradice el método de compresión de WinZip.

Observaciones

Este constructor no descomprime ninguna entrada. VerOpen método para descomprimir.

Ejemplos

El siguiente ejemplo extrae un archivo cifrado, luego descomprime la primera entrada a unFlujo de memoria.

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);
    }
}

Ver también


Archive(string, ArchiveLoadOptions, ArchiveEntrySettings)

Inicializa una nueva instancia delArchive La lista de entradas de clases y composiciones se puede extraer del archivo.

public Archive(string path, ArchiveLoadOptions loadOptions = null, 
    ArchiveEntrySettings newEntrySettings = null)
ParámetroEscribeDescripción
pathStringLa ruta completa o relativa al archivo de almacenamiento.
loadOptionsArchiveLoadOptionsOpciones para cargar el archivo existente.
newEntrySettingsArchiveEntrySettingsConfiguraciones de compresión y encriptación usadas para recién agregadosArchiveEntry items. Si no se especifica, se usará la compresión Deflate sin cifrado más común.

Excepciones

excepcióncondición
ArgumentNullExceptionpath es nulo.
SecurityExceptionLa persona que llama no tiene el permiso necesario para acceder.
ArgumentExceptionElpath está vacío, solo contiene espacios en blanco o contiene caracteres no válidos.
UnauthorizedAccessExceptionAcceso al archivopath es denegado.
PathTooLongExceptionEl especificadopath, nombre de archivo, o ambos superan 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.
NotSupportedExceptionArchivo enpath contiene dos puntos (:) en medio de la cadena.

Observaciones

Este constructor no descomprime ninguna entrada. VerOpen método para descomprimir.

Ejemplos

El siguiente ejemplo extrae un archivo cifrado, luego descomprime la primera entrada a unFlujo de memoria.

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);
    }
}

Ver también