Class RarArchiveEntry
Namespace: Aspose.Zip.Rar
Assembly: Aspose.Zip.dll (25.1.0)
Representa um único arquivo dentro do arquivo compactado.
public abstract class RarArchiveEntry : IArchiveFileEntry
Herança
Derivados
RarArchiveEntryEncrypted, RarArchiveEntryPlain
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.Rar.RarArchiveEntry para Aspose.Zip.Rar.RarArchiveEntryEncrypted para determinar se a entrada está criptografada ou não.
Propriedades
CompressedSize
Obtém o tamanho do arquivo compactado.
public ulong CompressedSize { get; }
Valor da Propriedade
CreationTime
Obtém a data e hora de criação.
public DateTime CreationTime { get; }
Valor da Propriedade
IsDirectory
Obtém um valor indicando se a entrada representa um diretório.
public bool IsDirectory { get; }
Valor da Propriedade
LastAccessTime
Obtém a data e hora do último acesso.
public DateTime LastAccessTime { 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 compactado.
public string Name { get; }
Valor da Propriedade
Source
Obtém o fluxo de dados da fonte 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, ele será sobrescrito.
password
string
Senha opcional para descriptografia.
Retorna
As informações do arquivo composto.
Exemplos
Extrair duas entradas do arquivo rar.
using (FileStream rarFile = File.Open("archive.rar", FileMode.Open))
{
using (RarArchive archive = new RarArchive(rarFile))
{
archive.Entries[0].Extract("first.bin", "pass");
archive.Entries[1].Extract("second.bin", "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 dos 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 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 rar com senha.
using (FileStream rarFile = File.Open("archive.zip", FileMode.Open))
{
using (RarArchive archive = new RarArchive(rarFile))
{
archive.Entries[0].Extract(httpResponseStream, "p@s$");
}
}
Exceções
A verificação CRC ou MAC falhou para a entrada.
destination
não suporta gravação.
Os dados estão corrompidos. -ou- A verificação CRC ou MAC falhou para a entrada.
Open(string)
Abre a entrada para extração e fornece um fluxo com o conteúdo da entrada descompactada.
public Stream Open(string password = null)
Parâmetros
password
string
Senha opcional para descriptografia. Também pode ser definida dentro de Aspose.Zip.Rar.RarArchiveLoadOptions.DecryptionPassword.
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
<p>Leia do fluxo para obter o conteúdo original do arquivo. Veja a seção de exemplos.</p>
### <a id="Aspose_Zip_Rar_RarArchiveEntry_ExtractionProgressed"></a> ExtractionProgressed
Dispara quando uma parte do fluxo bruto é extraída.
```csharp
public event EventHandler<progresseventargs> ExtractionProgressed
Tipo de Evento
EventHandler<ProgressEventArgs>
Exemplos
archive.Entries[0].ExtractionProgressed += (s, e) => { int percent = (int)((100 * e.ProceededBytes) / ((RarArchiveEntry)s).UncompressedSize); };
Observações
O remetente do evento é uma instância de Aspose.Zip.Rar.RarArchiveEntry.