Class ArchiveEntry
Namespace: Aspose.Zip
Assembly: Aspose.Zip.dll (25.1.0)
Representa um único arquivo dentro do arquivo compactado.
public abstract class ArchiveEntry : IArchiveFileEntry
Herança
Derivados
ArchiveEntryEncrypted, ArchiveEntryPlain
Implementa
Membros Herdados
object.GetType(), object.MemberwiseClone(), object.ToString(), object.Equals(object?), object.Equals(object?, object?), object.ReferenceEquals(object?, object?), object.GetHashCode()
Observações
Converta uma instância de Aspose.Zip.ArchiveEntry para Aspose.Zip.ArchiveEntryEncrypted para determinar se a entrada está criptografada ou não.
Construtores
ArchiveEntry(string, CompressionSettings, Func<stream>, FileAttributes)
Inicializa uma nova instância da classe Aspose.Zip.ArchiveEntry.
protected ArchiveEntry(string name, CompressionSettings compressionSettings, Func<stream> sourceProvider, FileAttributes fileAttributes)
Parâmetros
name
string
Nome da entrada.
compressionSettings
CompressionSettings
Configurações para compressão ou descompressão.
sourceProvider
Func<Stream>
Método que retorna o stream com os dados da entrada a serem comprimidos.
fileAttributes
FileAttributes
Atributos do sistema de arquivos.
ArchiveEntry(string, CompressionSettings, Stream, FileAttributes, FileSystemInfo)
Inicializa uma nova instância da classe Aspose.Zip.ArchiveEntry.
protected ArchiveEntry(string name, CompressionSettings compressionSettings, Stream source, FileAttributes fileAttributes, FileSystemInfo fileInfo = null)
Parâmetros
name
string
Nome da entrada.
compressionSettings
CompressionSettings
Configurações para compressão ou descompressão.
source
Stream
Stream com os dados da entrada a serem comprimidos ou descomprimidos.
fileAttributes
FileAttributes
Atributos do sistema de arquivos.
fileInfo
FileSystemInfo
Informações sobre o arquivo ou diretório com base na entrada.
Propriedades
Comment
Obtém o comentário da entrada dentro do arquivo compactado.
public string Comment { get; protected set; }
Valor da Propriedade
CompressedSize
Obtém o tamanho do arquivo comprimido.
public ulong CompressedSize { get; }
Valor da Propriedade
CompressionSettings
Obtém as configurações para compressão ou descompressão.
public CompressionSettings CompressionSettings { get; }
Valor da Propriedade
DataSource
Fonte para a entrada se a entrada foi adicionada ao arquivo compactado, não extraída.
public Stream DataSource { get; }
Valor da Propriedade
Observações
Antes de ser atribuído, a fonte é nula. Esta fonte pode ser atribuída dentro do método Archive.Save
em alguns casos.
FileAttributes
Obtém os atributos do arquivo do sistema host.
protected FileAttributes FileAttributes { get; }
Valor da Propriedade
IsDirectory
Obtém um valor que indica se a entrada representa um diretório.
public bool IsDirectory { get; }
Valor da Propriedade
ModificationTime
Obtém ou define a data e hora da última modificação.
public DateTime ModificationTime { get; set; }
Valor da Propriedade
Name
Obtém o nome da entrada dentro do arquivo compactado.
public string Name { get; protected set; }
Valor da Propriedade
UncompressedSize
Obtém o tamanho do arquivo original.
public ulong UncompressedSize { get; }
Valor da Propriedade
Métodos
Extract(string, string)
Extrai a entrada para o sistema de arquivos pelo caminho fornecido.
public FileInfo Extract(string path, string password = null)
Parâmetros
path
string
O caminho para o arquivo de destino. Se o arquivo já existir, ele será sobrescrito.
password
string
Senha opcional para decriptação.
Retorna
As informações do arquivo composto.
Exemplos
Extrair duas entradas do arquivo compactado zip, cada uma com sua própria senha
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");
}
}
Exceções
path
é nulo.
O chamador não tem a permissão necessária para acessar.
O path
está vazio, contém apenas espaços em branco ou contém caracteres inválidos.
O acesso ao arquivo path
é negado.
O path
, nome do arquivo ou ambos excedem o comprimento máximo definido pelo sistema. Por exemplo, em plataformas baseadas em Windows, os caminhos devem ter menos de 248 caracteres e os nomes de arquivos devem ter menos de 260 caracteres.
O arquivo em path
contém dois pontos (:) no meio da string.
O arquivo não foi encontrado.
O caminho especificado é inválido, como estar em uma unidade não mapeada.
O arquivo já está aberto.
Os dados estão corrompidos. -ou- A verificação CRC ou MAC falhou para a entrada.
Extract(Stream, string)
Extrai a entrada para o stream fornecido.
public void Extract(Stream destination, string password = null)
Parâmetros
destination
Stream
Stream de destino. Deve ser gravável.
password
string
Senha opcional para decriptação.
Exemplos
Extrair uma entrada do arquivo compactado zip com senha.
using (FileStream zipFile = File.Open("archive.zip", FileMode.Open))
{
using (Archive archive = new Archive(zipFile))
{
archive.Entries[0].Extract(httpResponseStream, "p@s$");
}
}
Exceções
Os dados estão corrompidos. -ou- A verificação CRC ou MAC falhou para a entrada.
A fonte está corrompida ou não é legível.
destination
não suporta gravação.
Open(string)
Abre a entrada para extração e fornece um stream com o conteúdo descomprimido da entrada.
public Stream Open(string password = null)
Parâmetros
password
string
Senha opcional para decriptação.
Retorna
O stream que representa o conteúdo da entrada.
Exemplos
Uso:
Stream decompressed = entry.Open();
.NET 4.0 e superior - use o método Stream.CopyTo:
decompressed.CopyTo(httpResponse.OutputStream)
.NET 3.5 e anterior - copie bytes manualmente:
byte[] buffer = new byte[8192];
int bytesRead;
while (0 < (bytesRead = decompressed.Read(buffer, 0, buffer.Length)))
fileStream.Write(buffer, 0, bytesRead);
```</p>
#### Observações
<p>Leia do stream para obter o conteúdo original do arquivo. Veja a seção de exemplos.</p>
#### Exceções
[InvalidOperationException](https://learn.microsoft.com/dotnet/api/system.invalidoperationexception)
O arquivo compactado está em um estado incorreto.
### <a id="Aspose_Zip_ArchiveEntry_CompressionProgressed"></a> CompressionProgressed
Levanta quando uma parte do stream bruto é comprimida.
```csharp
public event EventHandler<progresseventargs> CompressionProgressed
Tipo de Evento
EventHandler<ProgressEventArgs>
Exemplos
archive.Entries[0].CompressionProgressed += (s, e) => { int percent = (int)((100 * (long)e.ProceededBytes) / entrySourceStream.Length); };
Observações
O remetente do evento é uma instância de Aspose.Zip.ArchiveEntry.
ExtractionProgressed
Levanta quando uma parte do stream bruto é extraída.
public event EventHandler<progresseventargs> ExtractionProgressed
Tipo de Evento
EventHandler<ProgressEventArgs>
Exemplos
archive.Entries[0].ExtractionProgressed += (s, e) => { int percent = (int)((100 * e.ProceededBytes) / ((ArchiveEntry)s).UncompressedSize); };
Observações
O remetente do evento é uma instância de Aspose.Zip.ArchiveEntry.