Class SevenZipArchive

Class SevenZipArchive

Namespace: Aspose.Zip.SevenZip
Assembly: Aspose.Zip.dll (25.1.0)

Esta clase representa un archivo de archivo 7z. Úselo para componer y extraer archivos 7z.

public class SevenZipArchive : IArchive, IDisposable

Herencia

objectSevenZipArchive

Implementa

IArchive, IDisposable

Miembros heredados

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

Constructores

SevenZipArchive(SevenZipEntrySettings)

Inicializa una nueva instancia de la clase Aspose.Zip.SevenZip.SevenZipArchive con configuraciones opcionales para sus entradas.

public SevenZipArchive(SevenZipEntrySettings newEntrySettings = null)

Parámetros

newEntrySettings SevenZipEntrySettings

Configuraciones de compresión y cifrado utilizadas para los nuevos elementos Aspose.Zip.SevenZip.SevenZipArchiveEntry añadidos.
Si no se especifica, se utilizará la compresión LZMA sin cifrado.

Ejemplos

El siguiente ejemplo muestra cómo comprimir un solo archivo con configuraciones predeterminadas: compresión LZMA sin cifrado.

using (FileStream sevenZipFile = File.Open("archive.7z", FileMode.Create))
{
    using (var archive = new SevenZipArchive())
    {
        archive.CreateEntry("data.bin", "file.dat");
        archive.Save(sevenZipFile);
    }
}

SevenZipArchive(Stream, string)

Inicializa una nueva instancia de la clase Aspose.Zip.SevenZip.SevenZipArchive y compone la lista de entradas que se pueden extraer del archivo.

public SevenZipArchive(Stream sourceStream, string password = null)

Parámetros

sourceStream Stream

La fuente del archivo.

password string

Contraseña opcional para la descifrado. Si los nombres de archivo están cifrados, debe estar presente.

Ejemplos

using (SevenZipArchive archive = new SevenZipArchive(File.OpenRead("archive.7z")))
{
    archive.ExtractToDirectory("C:\\extracted");
}

Observaciones

Este constructor no descomprime ninguna entrada. Consulte el método Aspose.Zip.SevenZip.SevenZipArchive.ExtractToDirectory(System.String,System.String) para descomprimir.

Excepciones

ArgumentException

sourceStream no es buscable.

ArgumentNullException

sourceStream es nulo.

NotImplementedException

El archivo contiene más de un codificador. Ahora solo se admite la compresión LZMA.

SevenZipArchive(string, string)

Inicializa una nueva instancia de la clase Aspose.Zip.SevenZip.SevenZipArchive y compone la lista de entradas que se pueden extraer del archivo.

public SevenZipArchive(string path, string password = null)

Parámetros

path string

La ruta completamente calificada o la ruta relativa al archivo de archivo.

password string

Contraseña opcional para la descifrado. Si los nombres de archivo están cifrados, debe estar presente.

Ejemplos

using (SevenZipArchive archive = new SevenZipArchive("archive.7z"))
{
    archive.ExtractToDirectory("C:\\extracted");
}

Observaciones

Este constructor no descomprime ninguna entrada. Consulte el método Aspose.Zip.SevenZip.SevenZipArchive.ExtractToDirectory(System.String,System.String) para descomprimir.

Excepciones

ArgumentNullException

path es nulo.

SecurityException

El llamador no tiene el permiso requerido para acceder.

ArgumentException

El path está vacío, contiene solo espacios en blanco o contiene caracteres no válidos.

UnauthorizedAccessException

El acceso al archivo path está denegado.

PathTooLongException

La path 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 los archivos deben tener menos de 260 caracteres.

NotSupportedException

El archivo en path contiene dos puntos (:) en medio de la cadena.

FileNotFoundException

El archivo no se encuentra.

DirectoryNotFoundException

La ruta especificada no es válida, como estar en una unidad no asignada.

IOException

El archivo ya está abierto.

SevenZipArchive(string[], string)

Inicializa una nueva instancia de la clase Aspose.Zip.SevenZip.SevenZipArchive a partir de un archivo 7z de múltiples volúmenes y compone la lista de entradas que se pueden extraer del archivo.

public SevenZipArchive(string[] parts, string password = null)

Parámetros

parts string[]

Rutas a cada segmento del archivo 7z de múltiples volúmenes respetando el orden.

password string

Contraseña opcional para la descifrado. Si los nombres de archivo están cifrados, debe estar presente.

Ejemplos

using (SevenZipArchive archive = new SevenZipArchive(new string[] { "multi.7z.001", "multi.7z.002", "multi.7z.003" }))
{
    archive.ExtractToDirectory("C:\\extracted");
}

Excepciones

ArgumentNullException

parts es nulo.

ArgumentException

parts no tiene entradas.

SecurityException

El llamador no tiene el permiso requerido para acceder.

ArgumentException

La ruta a un archivo está vacía, contiene solo espacios en blanco o contiene caracteres no válidos.

UnauthorizedAccessException

El acceso a un archivo está denegado.

PathTooLongException

La ruta especificada a una parte, 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 los archivos deben tener menos de 260 caracteres.

NotSupportedException

El archivo en la ruta contiene un colon (:) en medio de la cadena.

Propiedades

Entries

Obtiene las entradas del tipo Aspose.Zip.SevenZip.SevenZipArchiveEntry que constituyen el archivo.

public ReadOnlyCollection<sevenziparchiveentry> Entries { get; }

Valor de la propiedad

ReadOnlyCollection<SevenZipArchiveEntry&gt;

NewEntrySettings

Configuraciones de compresión y cifrado utilizadas para los nuevos elementos Aspose.Zip.SevenZip.SevenZipArchiveEntry añadidos.

public SevenZipEntrySettings NewEntrySettings { get; }

Valor de la propiedad

SevenZipEntrySettings

Métodos

CreateEntries(DirectoryInfo, bool)

Agrega al archivo todos los archivos y directorios recursivamente en el directorio dado.

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

Parámetros

directory DirectoryInfo

Directorio a comprimir.

includeRootDirectory bool

Indica si se debe incluir el directorio raíz en sí o no.

Retorna

SevenZipArchive

El archivo con entradas compuestas.

Ejemplos

using (SevenZipArchive archive = new SevenZipArchive())
{
    DirectoryInfo folder = new DirectoryInfo("C:\folder");
    archive.CreateEntries(folder);
    archive.Save("folder.7z");
}

Excepciones

DirectoryNotFoundException

La ruta al directory es inválida, como estar en una unidad no asignada.

SecurityException

El llamador no tiene el permiso requerido para acceder al directory.

CreateEntries(string, bool)

Agrega al archivo todos los archivos y directorios recursivamente en el directorio dado.

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

Parámetros

sourceDirectory string

Directorio a comprimir.

includeRootDirectory bool

Indica si se debe incluir el directorio raíz en sí o no.

Retorna

SevenZipArchive

El archivo con entradas compuestas.

Ejemplos

Componer archivo 7z con compresión LZMA2.

using (SevenZipArchive archive = new SevenZipArchive(new SevenZipEntrySettings(new SevenZipLZMACompressionSettings())))
{
    archive.CreateEntries("C:\folder");
    archive.Save("folder.7z");
}

CreateEntry(string, FileInfo, bool, SevenZipEntrySettings)

Crea una única entrada dentro del archivo.

public SevenZipArchiveEntry CreateEntry(string name, FileInfo fileInfo, bool openImmediately = false, SevenZipEntrySettings newEntrySettings = null)

Parámetros

name string

El nombre de la entrada.

fileInfo FileInfo

Los metadatos del archivo a comprimir.

openImmediately bool

Verdadero si se abre el archivo inmediatamente, de lo contrario se abre el archivo al guardar el archivo.

newEntrySettings SevenZipEntrySettings

Configuraciones de compresión y cifrado utilizadas para el elemento Aspose.Zip.SevenZip.SevenZipArchiveEntry añadido.

Retorna

SevenZipArchiveEntry

Instancia de entrada de Seven Zip.

Ejemplos

Componer archivo con entradas cifradas con diferentes contraseñas cada una.

using (FileStream sevenZipFile = File.Open("archive.7z", FileMode.Create))
{
    FileInfo fi1 = new FileInfo("data1.bin");
    FileInfo fi2 = new FileInfo("data2.bin");
    FileInfo fi3 = new FileInfo("data3.bin");
    using (var archive = new SevenZipArchive())
    {
        archive.CreateEntry("entry1.bin", fi1, false, new SevenZipEntrySettings(new SevenZipStoreCompressionSettings(), new SevenZipAESEncryptionSettings("test1")));
        archive.CreateEntry("entry2.bin", fi2, false, new SevenZipEntrySettings(new SevenZipStoreCompressionSettings(), new SevenZipAESEncryptionSettings("test2")));
        archive.CreateEntry("entry3.bin", fi3, false, new SevenZipEntrySettings(new SevenZipStoreCompressionSettings(), new SevenZipAESEncryptionSettings("test3")));
        archive.Save(sevenZipFile);
    }
}

Observaciones

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

Si el archivo se abre inmediatamente con el parámetro openImmediately, se bloquea hasta que se guarda el archivo.

Excepciones

UnauthorizedAccessException

fileInfo es de solo lectura o es un directorio.

DirectoryNotFoundException

La ruta especificada es inválida, como estar en una unidad no asignada.

IOException

El archivo ya está abierto.

CreateEntry(string, Stream, SevenZipEntrySettings, FileSystemInfo)

Crea una única entrada dentro del archivo.

public SevenZipArchiveEntry CreateEntry(string name, Stream source, SevenZipEntrySettings newEntrySettings, FileSystemInfo fileInfo)

Parámetros

name string

El nombre de la entrada.

source Stream

El flujo de entrada para la entrada.

newEntrySettings SevenZipEntrySettings

Configuraciones de compresión y cifrado utilizadas para el elemento Aspose.Zip.SevenZip.SevenZipArchiveEntry añadido.

fileInfo FileSystemInfo

Los metadatos del archivo o carpeta a comprimir.

Retorna

SevenZipArchiveEntry

Instancia de entrada de SevenZip.

Ejemplos

Componer archivo con entrada cifrada comprimida con LZMA2.

using (FileStream sevenZipFile = File.Open("archive.7z", FileMode.Create))
{
    using (var archive = new SevenZipArchive())
    {
        archive.CreateEntry("entry1.bin", new MemoryStream(new byte[] {0x00, 0xFF}), new SevenZipEntrySettings(new SevenZipLZMA2CompressionSettings(), new SevenZipAESEncryptionSettings("test1")), new FileInfo("data1.bin")); 
        archive.Save(sevenZipFile);
    }
}

Observaciones

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

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

Excepciones

InvalidOperationException

Ambos source y fileInfo son nulos o source es nulo y fileInfo representa un directorio.

CreateEntry(string, Stream, SevenZipEntrySettings)

Crea una única entrada dentro del archivo.

public SevenZipArchiveEntry CreateEntry(string name, Stream source, SevenZipEntrySettings newEntrySettings = null)

Parámetros

name string

El nombre de la entrada.

source Stream

El flujo de entrada para la entrada.

newEntrySettings SevenZipEntrySettings

Configuraciones de compresión y cifrado utilizadas para el elemento Aspose.Zip.SevenZip.SevenZipArchiveEntry añadido.

Retorna

SevenZipArchiveEntry

Instancia de entrada de Zip.

Ejemplos

Componer archivo 7z con compresión LZMA2 y cifrado de todas las entradas.

using (var archive = new SevenZipArchive(new SevenZipEntrySettings(new SevenZipLZMA2CompressionSettings(), new SevenZipAESEncryptionSettings("p@s$"))))
{
    archive.CreateEntry("data.bin", new MemoryStream(new byte[] {0x00, 0xFF} ));
    archive.Save("archive.7z");
}

CreateEntry(string, string, bool, SevenZipEntrySettings)

Crea una única entrada dentro del archivo.

public SevenZipArchiveEntry CreateEntry(string name, string path, bool openImmediately = false, SevenZipEntrySettings newEntrySettings = null)

Parámetros

name string

El nombre de la entrada.

path string

El nombre completamente calificado del nuevo archivo o el nombre de archivo relativo que se va a comprimir.

openImmediately bool

Verdadero si se abre el archivo inmediatamente, de lo contrario se abre el archivo al guardar el archivo.

newEntrySettings SevenZipEntrySettings

Configuraciones de compresión y cifrado utilizadas para el elemento Aspose.Zip.SevenZip.SevenZipArchiveEntry añadido.

Retorna

SevenZipArchiveEntry

Instancia de entrada de Zip.

Ejemplos

using (FileStream sevenZipFile = File.Open("archive.7z", FileMode.Create))
{
    using (var archive = new SevenZipArchive(new SevenZipEntrySettings(new SevenZipLZMA2CompressionSettings())))
    {
        archive.CreateEntry("data.bin", "file.dat");
        archive.Save(sevenZipFile);
    }
}

Observaciones

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

Si el archivo se abre inmediatamente con el parámetro openImmediately, se bloquea hasta que se guarda el archivo.

Excepciones

ArgumentNullException

path es nulo.

SecurityException

El llamador no tiene el permiso requerido para acceder.

ArgumentException

El path está vacío, contiene solo espacios en blanco o contiene caracteres no válidos.

UnauthorizedAccessException

El acceso al archivo path está denegado.

PathTooLongException

La path 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 los archivos deben tener menos de 260 caracteres.

NotSupportedException

El archivo en path contiene un colon (:) en medio de la cadena.

Dispose()

Realiza tareas definidas por la aplicación asociadas con liberar, liberar o restablecer recursos no administrados.

public void Dispose()

Dispose(bool)

Realiza tareas definidas por la aplicación asociadas con liberar, liberar o restablecer recursos no administrados.

protected virtual void Dispose(bool disposing)

Parámetros

disposing bool

Si los recursos administrados deben ser liberados.

ExtractToDirectory(string, string)

Extrae todos los archivos del archivo al directorio proporcionado.

public void ExtractToDirectory(string destinationDirectory, string password = null)

Parámetros

destinationDirectory string

La ruta al directorio donde se colocarán los archivos extraídos.

password string

Contraseña opcional para la descifrado del contenido.

Ejemplos

using (var archive = new SevenZipArchive("archive.7z")) 
{ 
   archive.ExtractToDirectory("C:\extracted");
}

Observaciones

Si el directorio no existe, se creará.

password se utiliza solo para la descifrado del contenido. Si los nombres de archivo están cifrados, proporcione la contraseña en el constructor Aspose.Zip.SevenZip.SevenZipArchive.#ctor(System.String,System.String) o Aspose.Zip.SevenZip.SevenZipArchive.#ctor(System.IO.Stream,System.String).

Excepciones

ArgumentNullException

destinationDirectory es nulo.

PathTooLongException

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 los archivos deben tener menos de 260 caracteres.

SecurityException

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

NotSupportedException

Si el directorio no existe, la ruta contiene un carácter de dos puntos (:) que no es parte de una etiqueta de unidad (“C:").

ArgumentException

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á prefijada con, o contiene, solo un carácter de dos puntos (:).

IOException

El directorio especificado por la ruta es un archivo. -o- El nombre de la red no se conoce.

InvalidDataException

El archivo está dañado.

Save(Stream)

Guarda el archivo 7z en el flujo proporcionado.

public void Save(Stream output)

Parámetros

output Stream

Flujo de destino.

Ejemplos

using (FileStream sevenZipFile = File.Open("archive.7z", FileMode.Create))
{
  using (FileStream source = File.Open("data.bin", FileMode.Open, FileAccess.Read))
  {
    using (var archive = new SevenZipArchive())
    {
      archive.CreateEntry("data", source);
      archive.Save(sevenZipFile);
    }
  }
}

Observaciones

output debe ser buscable.

Excepciones

ArgumentException

output no admite la búsqueda.

ArgumentNullException

output es nulo.

InvalidOperationException

El codificador no pudo comprimir los datos.

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 va a crear. Si el nombre de archivo especificado apunta a un archivo existente, se sobrescribirá.

Ejemplos

using (FileStream source = File.Open("data.bin", FileMode.Open, FileAccess.Read))
{
   using (var archive = new SevenZipArchive(new SevenZipEntrySettings(new SevenZipLZMACompressionSettings())))
   {
      archive.CreateEntry("data", source);
      archive.Save("archive.7z");
   }
}

Observaciones

Es posible guardar un archivo en la misma ruta de donde se cargó. Sin embargo, esto no se recomienda porque este enfoque utiliza la copia a un archivo temporal.

Excepciones

ArgumentNullException

destinationFileName es nulo.

SecurityException

El llamador no tiene el permiso requerido para acceder.

ArgumentException

El destinationFileName está vacío, contiene solo espacios en blanco o contiene caracteres no válidos.

UnauthorizedAccessException

El acceso al archivo destinationFileName está denegado.

PathTooLongException

El destinationFileName especificado, 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 los archivos deben tener menos de 260 caracteres.

NotSupportedException

El archivo en destinationFileName contiene un colon (:) en medio de la cadena.

SaveSplit(string, SplitSevenZipArchiveSaveOptions)

Guarda el archivo de múltiples volúmenes en el directorio de destino proporcionado.

public void SaveSplit(string destinationDirectory, SplitSevenZipArchiveSaveOptions options)

Parámetros

destinationDirectory string

La ruta al directorio donde se crearán los segmentos del archivo.

options SplitSevenZipArchiveSaveOptions

Opciones para guardar el archivo, incluido el nombre del archivo.

Ejemplos

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

Observaciones

Este método compone varios (n) archivos filename.7z.001, filename.7z.002, ..., filename.7z.(n).

No se puede hacer que un archivo existente sea de múltiples volúmenes.

Excepciones

InvalidOperationException

Este archivo se abrió desde una fuente existente.

ArgumentNullException

destinationDirectory es nulo.

SecurityException

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

ArgumentException

destinationDirectory contiene caracteres no válidos, como “, >, < o |.

PathTooLongException

La ruta especificada excede la longitud máxima definida por el sistema.

 Español