Class SevenZipArchiveEntry
Namespace: Aspose.Zip.SevenZip
Assembly: Aspose.Zip.dll (25.1.0)
Representa um único arquivo dentro do arquivo 7z.
public abstract class SevenZipArchiveEntry : IArchiveFileEntry
Herança
Derivados
SevenZipArchiveEntryEncrypted, SevenZipArchiveEntryPlain
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.SevenZip.SevenZipArchiveEntry para Aspose.Zip.SevenZip.SevenZipArchiveEntryEncrypted para determinar se a entrada está criptografada ou não.
Construtores
SevenZipArchiveEntry(SevenZipArchive, string, SevenZipCompressionSettings, Stream, FileAttributes, FileSystemInfo)
Inicializa uma nova instância da classe Aspose.Zip.SevenZip.SevenZipArchiveEntry.
protected SevenZipArchiveEntry(SevenZipArchive parent, string name, SevenZipCompressionSettings compressionSettings, Stream source, FileAttributes fileAttributes, FileSystemInfo fileInfo = null)
Parâmetros
parent
SevenZipArchive
name
string
Nome da entrada.
compressionSettings
SevenZipCompressionSettings
Configurações para compressão ou descompressão.
source
Stream
Fluxo 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 da entrada.
Exceções
O name
é nulo ou vazio.
Propriedades
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 SevenZipCompressionSettings CompressionSettings { get; }
Valor da Propriedade
FileAttributes
Obtém os atributos do arquivo do sistema host.
protected FileAttributes FileAttributes { get; }
Valor da Propriedade
IsDirectory
Obtém um valor indicando se a entrada representa um diretório.
public bool IsDirectory { get; }
Valor da Propriedade
ModificationTime
Obtém a data e hora da última modificação.
public DateTime ModificationTime { get; }
Valor da Propriedade
Name
Obtém o nome da entrada dentro do arquivo.
public string Name { get; protected set; }
Valor da Propriedade
Source
Obtém o fluxo de dados de origem para a entrada.
protected Stream Source { get; 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, será sobrescrito.
password
string
Senha opcional para descriptografia.
Retorna
As informações do arquivo composto.
Exemplos
using (var archive = new SevenZipArchive("archive.7z"))
{
archive.Entries[0].Extract("data.bin");
}
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 compactado está corrompido.
Extract(Stream, string)
Extrai a entrada para o fluxo fornecido.
public void Extract(Stream destination, string password = null)
Parâmetros
destination
Stream
Fluxo de destino. Deve ser gravável.
password
string
Senha opcional para descriptografia.
Exemplos
Extrair uma entrada do arquivo zip com senha.
using (var archive = new SevenZipArchive("archive.7z"))
{
archive.Entries[0].Extract(httpResponseStream);
}
Exceções
destination
não suporta gravação.
O arquivo compactado não está aberto para extração. - ou - Esta entrada é um diretório.
Dados incorretos dentro da entrada.
FinalizeCompressedData(Stream, byte[])
Escreve no fluxo de saída quaisquer cabeçalhos que seguem os dados comprimidos.
protected abstract int FinalizeCompressedData(Stream outputStream, byte[] encoderProperties)
Parâmetros
outputStream
Stream
Fluxo de saída para a entrada.
encoderProperties
byte[]
Propriedades do compressor.
Retorna
Número de bytes “técnicos” que foram adicionados após o bloco de dados significativos da entrada.
GetDestinationStream(Stream)
Fluxo de destino para a entrada, pode ser decorado.
protected abstract Stream GetDestinationStream(Stream outputStream)
Parâmetros
outputStream
Stream
Fluxo de saída para a entrada.
Retorna
O fluxo de destino para a compressão da entrada.
Open(string)
Abre a entrada para extração e fornece um fluxo com o conteúdo da entrada.
public Stream Open(string password = null)
Parâmetros
password
string
Senha opcional para descriptografia.
Retorna
O fluxo 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 os 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
Leia do fluxo para obter o conteúdo original do arquivo. Veja a seção de exemplos.
#### Exceções
[InvalidOperationException](https://learn.microsoft.com/dotnet/api/system.invalidoperationexception)
O arquivo compactado não está aberto para extração. - ou - Esta entrada é um diretório.
[InvalidDataException](https://learn.microsoft.com/dotnet/api/system.io.invaliddataexception)
Dados incorretos dentro da entrada.
### <a id="Aspose_Zip_SevenZip_SevenZipArchiveEntry_CompressionProgressed"></a> CompressionProgressed
Dispara quando uma parte do fluxo 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.SevenZip.SevenZipArchiveEntry.
Não é invocado em modo multithread para entradas LZMA2.