Class ArchiveEntry
Namespace: Aspose.Zip
Assembly: Aspose.Zip.dll (25.1.0)
Representa un único archivo dentro del archivo comprimido.
public abstract class ArchiveEntry : IArchiveFileEntry
Herencia
Derivados
ArchiveEntryEncrypted, ArchiveEntryPlain
Implementa
Miembros heredados
object.GetType(), object.MemberwiseClone(), object.ToString(), object.Equals(object?), object.Equals(object?, object?), object.ReferenceEquals(object?, object?), object.GetHashCode()
Observaciones
Convierte una instancia de Aspose.Zip.ArchiveEntry a Aspose.Zip.ArchiveEntryEncrypted para determinar si la entrada está cifrada o no.
Constructores
ArchiveEntry(string, CompressionSettings, Func<stream>, FileAttributes)
Inicializa una nueva instancia de la clase Aspose.Zip.ArchiveEntry.
protected ArchiveEntry(string name, CompressionSettings compressionSettings, Func<stream> sourceProvider, FileAttributes fileAttributes)
Parámetros
name
string
Nombre de la entrada.
compressionSettings
CompressionSettings
Configuraciones para compresión o descompresión.
sourceProvider
Func<Stream>
Método que devuelve un stream con los datos de la entrada a ser comprimidos.
fileAttributes
FileAttributes
Atributos del sistema de archivos.
ArchiveEntry(string, CompressionSettings, Stream, FileAttributes, FileSystemInfo)
Inicializa una nueva instancia de la clase Aspose.Zip.ArchiveEntry.
protected ArchiveEntry(string name, CompressionSettings compressionSettings, Stream source, FileAttributes fileAttributes, FileSystemInfo fileInfo = null)
Parámetros
name
string
Nombre de la entrada.
compressionSettings
CompressionSettings
Configuraciones para compresión o descompresión.
source
Stream
Stream con los datos de la entrada a ser comprimidos o descomprimidos.
fileAttributes
FileAttributes
Atributos del sistema de archivos.
fileInfo
FileSystemInfo
Información del archivo o directorio en base a la entrada.
Propiedades
Comment
Obtiene el comentario de la entrada dentro del archivo comprimido.
public string Comment { get; protected set; }
Valor de la propiedad
CompressedSize
Obtiene el tamaño del archivo comprimido.
public ulong CompressedSize { get; }
Valor de la propiedad
CompressionSettings
Obtiene las configuraciones para compresión o descompresión.
public CompressionSettings CompressionSettings { get; }
Valor de la propiedad
DataSource
Fuente para la entrada si la entrada fue añadida al archivo comprimido, no extraída.
public Stream DataSource { get; }
Valor de la propiedad
Observaciones
Antes de ser asignada, la fuente es nula. Esta fuente puede ser asignada dentro del método Archive.Save
en algunos casos.
FileAttributes
Obtiene los atributos del archivo del sistema anfitrión.
protected FileAttributes FileAttributes { get; }
Valor de la propiedad
IsDirectory
Obtiene un valor que indica si la entrada representa un directorio.
public bool IsDirectory { get; }
Valor de la propiedad
ModificationTime
Obtiene o establece la fecha y hora de la última modificación.
public DateTime ModificationTime { get; set; }
Valor de la propiedad
Name
Obtiene el nombre de la entrada dentro del archivo comprimido.
public string Name { get; protected set; }
Valor de la propiedad
UncompressedSize
Obtiene el tamaño del archivo original.
public ulong UncompressedSize { get; }
Valor de la propiedad
Métodos
Extract(string, string)
Extrae la entrada al sistema de archivos según la ruta proporcionada.
public FileInfo Extract(string path, string password = null)
Parámetros
path
string
La ruta al archivo de destino. Si el archivo ya existe, será sobrescrito.
password
string
Contraseña opcional para la desencriptación.
Retorna
La información del archivo compuesto.
Ejemplos
Extraer dos entradas de un archivo zip, cada una con su propia contraseña
using (FileStream zipFile = File.Open("archive.zip", FileMode.Open))
{
using (Archive archive = new Archive(zipFile))
{
archive.Entries[0].Extract("first.bin", "first_pass");
archive.Entries[1].Extract("second.bin", "second_pass");
}
}
Excepciones
path
es nulo.
El llamador no tiene el permiso requerido para acceder.
La path
está vacía, contiene solo espacios en blanco, o contiene caracteres no válidos.
El acceso al archivo path
está denegado.
La path
, 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 archivo 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.
Los datos están corruptos. -o- La verificación CRC o MAC falló para la entrada.
Extract(Stream, string)
Extrae la entrada al stream proporcionado.
public void Extract(Stream destination, string password = null)
Parámetros
destination
Stream
Stream de destino. Debe ser escribible.
password
string
Contraseña opcional para la desencriptación.
Ejemplos
Extraer una entrada de un archivo zip con contraseña.
using (FileStream zipFile = File.Open("archive.zip", FileMode.Open))
{
using (Archive archive = new Archive(zipFile))
{
archive.Entries[0].Extract(httpResponseStream, "p@s$");
}
}
Excepciones
Los datos están corruptos. -o- La verificación CRC o MAC falló para la entrada.
La fuente está corrupta o no es legible.
destination
no soporta escritura.
Open(string)
Abre la entrada para extracción y proporciona un stream con el contenido descomprimido de la entrada.
public Stream Open(string password = null)
Parámetros
password
string
Contraseña opcional para la desencriptación.
Retorna
El stream que representa el contenido de la entrada.
Ejemplos
Uso:
Stream decompressed = entry.Open();
.NET 4.0 y superior - usa el método Stream.CopyTo:
decompressed.CopyTo(httpResponse.OutputStream)
.NET 3.5 y anterior - copia los bytes manualmente:
byte[] buffer = new byte[8192];
int bytesRead;
while (0 < (bytesRead = decompressed.Read(buffer, 0, buffer.Length)))
fileStream.Write(buffer, 0, bytesRead);
```</p>
#### Observaciones
<p>Lee del stream para obtener el contenido original del archivo. Ver sección de ejemplos.</p>
#### Excepciones
[InvalidOperationException](https://learn.microsoft.com/dotnet/api/system.invalidoperationexception)
El archivo comprimido está en un estado incorrecto.
### <a id="Aspose_Zip_ArchiveEntry_CompressionProgressed"></a> CompressionProgressed
Se activa cuando una porción del stream crudo es comprimida.
```csharp
public event EventHandler<progresseventargs> CompressionProgressed
Tipo de evento
EventHandler<ProgressEventArgs>
Ejemplos
archive.Entries[0].CompressionProgressed += (s, e) => { int percent = (int)((100 * (long)e.ProceededBytes) / entrySourceStream.Length); };
Observaciones
El remitente del evento es una instancia de Aspose.Zip.ArchiveEntry.
ExtractionProgressed
Se activa cuando una porción del stream crudo es extraída.
public event EventHandler<progresseventargs> ExtractionProgressed
Tipo de evento
EventHandler<ProgressEventArgs>
Ejemplos
archive.Entries[0].ExtractionProgressed += (s, e) => { int percent = (int)((100 * e.ProceededBytes) / ((ArchiveEntry)s).UncompressedSize); };
Observaciones
El remitente del evento es una instancia de Aspose.Zip.ArchiveEntry.