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
Implementa
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
sourceStream
no es buscable.
sourceStream
es nulo.
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
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
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.
El archivo en path
contiene dos puntos (:) en medio de la cadena.
El archivo no se encuentra.
La ruta especificada no es válida, como estar en una unidad no asignada.
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
parts
es nulo.
parts
no tiene entradas.
El llamador no tiene el permiso requerido para acceder.
La ruta a un archivo está vacía, contiene solo espacios en blanco o contiene caracteres no válidos.
El acceso a un archivo está denegado.
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.
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>
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
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
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
La ruta al directory
es inválida, como estar en una unidad no asignada.
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
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
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
fileInfo
es de solo lectura o es un directorio.
La ruta especificada es inválida, como estar en una unidad no asignada.
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
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
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
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
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
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
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.
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
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 los archivos 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á prefijada con, o contiene, solo un carácter de dos puntos (:).
El directorio especificado por la ruta es un archivo. -o- El nombre de la red no se conoce.
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
output
no admite la búsqueda.
output
es nulo.
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
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
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.
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
Este archivo se abrió desde una fuente existente.
destinationDirectory
es nulo.
El llamador no tiene el permiso requerido para acceder al directorio.
destinationDirectory
contiene caracteres no válidos, como “, >, < o |.
La ruta especificada excede la longitud máxima definida por el sistema.