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
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
sourceStream’ is not seekable.
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
path’ is null.
El solicitante no tiene la autorización necesaria para acceder.
El path’ es vacío, contiene solo espacios blancos, o contiene caracteres invalidos.
Se denega el acceso al archivo path.
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.
El archivo en path’ contiene una columna (:) en el medio de la línea.
El archivo no se encuentra.
La ruta especificada es invalida, como estar en un disco no mapeado.
El archivo ya está abierto.
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
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
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
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
El camino a la directory’ es invalido, como estar en un disco no mapeado.
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
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
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
path’ is null.
El solicitante no tiene la autorización necesaria para acceder.
El path’ es vacío, contiene solo espacios blancos, o contiene caracteres invalidos.
Se denega el acceso al archivo path.
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.
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
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
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
fileInfo’ is read-only or is a directory.
La ruta especificada es invalida, como estar en un disco no mapeado.
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
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
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
Introducción de Zip.
Examples
Componer archivo con entrada cifrada.
System.Func<Stream> 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
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 > 1)
archive.DeleteEntry(archive.Entries[0]);
archive.Save("last_entry.zip");
}
Exceptions
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
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
Los archivos están eliminados.
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
destinationDirectory’ is null.
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.
El llamador no tiene el permiso necesario para acceder al directorio existente.
Si el directorio no existe, el camino contiene un carácter colon (:) que no forma parte de una etiqueta de disco (“C:”).
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 (:).
El directorio especificado por ruta es un archivo. -o- El nombre de red no es conocido.
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
outputStream’ is not writable.
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
destinationFileName’ is null.
El solicitante no tiene la autorización necesaria para acceder.
El destinationFileName’ es vacío, contiene solo espacios blancos, o contiene caracteres invalidos.
Se denega el acceso al archivo destinationFileName.
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.
El archivo en la destinationFileName’ contiene una columna (:) en el medio de la línea.
El archivo no se encuentra.
La ruta especificada es invalida, como estar en un disco no mapeado.
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
Este archivo fue abierto desde la fuente existente.
Este archivo es comprimido con el método XZ y cifrado.
destinationDirectory’ is null.
El llamador no tiene el permiso necesario para acceder al directorio.
destinationDirectory’ contains invalid characters such as “, >, <, or |.
El camino especificado supera la longitud máxima definida por el sistema.
El archivo está eliminado.