Class SevenZipArchive

Class SevenZipArchive

Namespace: Aspose.Zip.SevenZip
Assembly: Aspose.Zip.dll (25.1.0)

Esta classe representa um arquivo de arquivo 7z. Use-a para compor e extrair arquivos 7z.

public class SevenZipArchive : IArchive, IDisposable

Herança

objectSevenZipArchive

Implementa

IArchive, IDisposable

Membros Herdados

object.GetType(), object.MemberwiseClone(), object.ToString(), object.Equals(object?), object.Equals(object?, object?), object.ReferenceEquals(object?, object?), object.GetHashCode()

Construtores

SevenZipArchive(SevenZipEntrySettings)

Inicializa uma nova instância da classe Aspose.Zip.SevenZip.SevenZipArchive com configurações opcionais para suas entradas.

public SevenZipArchive(SevenZipEntrySettings newEntrySettings = null)

Parâmetros

newEntrySettings SevenZipEntrySettings

Configurações de compressão e criptografia usadas para os novos itens Aspose.Zip.SevenZip.SevenZipArchiveEntry.
Se não especificado, a compressão LZMA sem criptografia será usada.

Exemplos

O exemplo a seguir mostra como compactar um único arquivo com as configurações padrão: compressão LZMA sem criptografia.

using (FileStream sevenZipFile = File.Open("archive.7z", FileMode.Create))
{
    using (var archive = new SevenZipArchive())
    {
        archive.CreateEntry("data.bin", "file.dat");
        archive.Save(sevenZipFile);
    }
}

SevenZipArchive(Stream, string)

Inicializa uma nova instância da classe Aspose.Zip.SevenZip.SevenZipArchive e compõe a lista de entradas que podem ser extraídas do arquivo.

public SevenZipArchive(Stream sourceStream, string password = null)

Parâmetros

sourceStream Stream

A fonte do arquivo.

password string

Senha opcional para descriptografia. Se os nomes dos arquivos estiverem criptografados, ela deve estar presente.

Exemplos

using (SevenZipArchive archive = new SevenZipArchive(File.OpenRead("archive.7z")))
{
    archive.ExtractToDirectory("C:\\extracted");
}

Observações

Este construtor não descompacta nenhuma entrada. Veja o método Aspose.Zip.SevenZip.SevenZipArchive.ExtractToDirectory(System.String,System.String) para descompressão.

Exceções

ArgumentException

sourceStream não é buscável.

ArgumentNullException

sourceStream é nulo.

NotImplementedException

O arquivo contém mais de um codificador. Atualmente, apenas a compressão LZMA é suportada.

SevenZipArchive(string, string)

Inicializa uma nova instância da classe Aspose.Zip.SevenZip.SevenZipArchive e compõe a lista de entradas que podem ser extraídas do arquivo.

public SevenZipArchive(string path, string password = null)

Parâmetros

path string

O caminho totalmente qualificado ou o caminho relativo para o arquivo de arquivo.

password string

Senha opcional para descriptografia. Se os nomes dos arquivos estiverem criptografados, ela deve estar presente.

Exemplos

using (SevenZipArchive archive = new SevenZipArchive("archive.7z"))
{
    archive.ExtractToDirectory("C:\\extracted");
}

Observações

Este construtor não descompacta nenhuma entrada. Veja o método Aspose.Zip.SevenZip.SevenZipArchive.ExtractToDirectory(System.String,System.String) para descompressão.

Exceções

ArgumentNullException

path é nulo.

SecurityException

O chamador não tem a permissão necessária para acessar.

ArgumentException

O path está vazio, contém apenas espaços em branco ou contém caracteres inválidos.

UnauthorizedAccessException

O acesso ao arquivo path é negado.

PathTooLongException

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.

NotSupportedException

O arquivo em path contém dois pontos (:) no meio da string.

FileNotFoundException

O arquivo não foi encontrado.

DirectoryNotFoundException

O caminho especificado é inválido, como estar em uma unidade não mapeada.

IOException

O arquivo já está aberto.

SevenZipArchive(string[], string)

Inicializa uma nova instância da classe Aspose.Zip.SevenZip.SevenZipArchive a partir de um arquivo 7z de múltiplos volumes e compõe a lista de entradas que podem ser extraídas do arquivo.

public SevenZipArchive(string[] parts, string password = null)

Parâmetros

parts string[]

Caminhos para cada segmento do arquivo 7z de múltiplos volumes respeitando a ordem.

password string

Senha opcional para descriptografia. Se os nomes dos arquivos estiverem criptografados, ela deve estar presente.

Exemplos

using (SevenZipArchive archive = new SevenZipArchive(new string[] { "multi.7z.001", "multi.7z.002", "multi.7z.003" }))
{
    archive.ExtractToDirectory("C:\\extracted");
}

Exceções

ArgumentNullException

parts é nulo.

ArgumentException

parts não possui entradas.

SecurityException

O chamador não tem a permissão necessária para acessar.

ArgumentException

O caminho para um arquivo está vazio, contém apenas espaços em branco ou contém caracteres inválidos.

UnauthorizedAccessException

O acesso a um arquivo é negado.

PathTooLongException

O caminho especificado para uma parte, 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.

NotSupportedException

O arquivo no caminho contém dois pontos (:) no meio da string.

Propriedades

Entries

Obtém entradas do tipo Aspose.Zip.SevenZip.SevenZipArchiveEntry que constituem o arquivo.

public ReadOnlyCollection<sevenziparchiveentry> Entries { get; }

Valor da Propriedade

ReadOnlyCollection<SevenZipArchiveEntry&gt;

NewEntrySettings

Configurações de compressão e criptografia usadas para os novos itens Aspose.Zip.SevenZip.SevenZipArchiveEntry.

public SevenZipEntrySettings NewEntrySettings { get; }

Valor da Propriedade

SevenZipEntrySettings

Métodos

CreateEntries(DirectoryInfo, bool)

Adiciona ao arquivo todos os arquivos e diretórios recursivamente no diretório dado.

public SevenZipArchive CreateEntries(DirectoryInfo directory, bool includeRootDirectory = true)

Parâmetros

directory DirectoryInfo

Diretório a ser compactado.

includeRootDirectory bool

Indica se deve incluir o diretório raiz em si ou não.

Retorna

SevenZipArchive

O arquivo com entradas compostas.

Exemplos

using (SevenZipArchive archive = new SevenZipArchive())
{
    DirectoryInfo folder = new DirectoryInfo("C:\\folder");
    archive.CreateEntries(folder);
    archive.Save("folder.7z");
}

Exceções

DirectoryNotFoundException

O caminho para directory é inválido, como estar em uma unidade não mapeada.

SecurityException

O chamador não tem a permissão necessária para acessar directory.

CreateEntries(string, bool)

Adiciona ao arquivo todos os arquivos e diretórios recursivamente no diretório dado.

public SevenZipArchive CreateEntries(string sourceDirectory, bool includeRootDirectory = true)

Parâmetros

sourceDirectory string

Diretório a ser compactado.

includeRootDirectory bool

Indica se deve incluir o diretório raiz em si ou não.

Retorna

SevenZipArchive

O arquivo com entradas compostas.

Exemplos

Compor arquivo 7z com compressão LZMA2.

using (SevenZipArchive archive = new SevenZipArchive(new SevenZipEntrySettings(new SevenZipLZMACompressionSettings())))
{
    archive.CreateEntries("C:\\folder");
    archive.Save("folder.7z");
}

CreateEntry(string, FileInfo, bool, SevenZipEntrySettings)

Cria uma única entrada dentro do arquivo.

public SevenZipArchiveEntry CreateEntry(string name, FileInfo fileInfo, bool openImmediately = false, SevenZipEntrySettings newEntrySettings = null)

Parâmetros

name string

O nome da entrada.

fileInfo FileInfo

Os metadados do arquivo a ser compactado.

openImmediately bool

Verdadeiro se abrir o arquivo imediatamente, caso contrário, abrir o arquivo ao salvar o arquivo.

newEntrySettings SevenZipEntrySettings

Configurações de compressão e criptografia usadas para o item Aspose.Zip.SevenZip.SevenZipArchiveEntry adicionado.

Retorna

SevenZipArchiveEntry

Instância de entrada Seven Zip.

Exemplos

Compor arquivo com entradas criptografadas com senhas diferentes cada.

using (FileStream sevenZipFile = File.Open("archive.7z", FileMode.Create))
{
    FileInfo fi1 = new FileInfo("data1.bin");
    FileInfo fi2 = new FileInfo("data2.bin");
    FileInfo fi3 = new FileInfo("data3.bin");
    using (var archive = new SevenZipArchive())
    {
        archive.CreateEntry("entry1.bin", fi1, false, new SevenZipEntrySettings(new SevenZipStoreCompressionSettings(), new SevenZipAESEncryptionSettings("test1")));
        archive.CreateEntry("entry2.bin", fi2, false, new SevenZipEntrySettings(new SevenZipStoreCompressionSettings(), new SevenZipAESEncryptionSettings("test2")));
        archive.CreateEntry("entry3.bin", fi3, false, new SevenZipEntrySettings(new SevenZipStoreCompressionSettings(), new SevenZipAESEncryptionSettings("test3")));
        archive.Save(sevenZipFile);
    }
}

Observações

O nome da entrada é definido exclusivamente dentro do parâmetro name. O nome do arquivo fornecido no parâmetro fileInfo não afeta o nome da entrada.

Se o arquivo for aberto imediatamente com o parâmetro openImmediately, ele ficará bloqueado até que o arquivo seja salvo.

Exceções

UnauthorizedAccessException

fileInfo é somente leitura ou é um diretório.

DirectoryNotFoundException

O caminho especificado é inválido, como estar em uma unidade não mapeada.

IOException

O arquivo já está aberto.

CreateEntry(string, Stream, SevenZipEntrySettings, FileSystemInfo)

Cria uma única entrada dentro do arquivo.

public SevenZipArchiveEntry CreateEntry(string name, Stream source, SevenZipEntrySettings newEntrySettings, FileSystemInfo fileInfo)

Parâmetros

name string

O nome da entrada.

source Stream

O fluxo de entrada para a entrada.

newEntrySettings SevenZipEntrySettings

Configurações de compressão e criptografia usadas para o item Aspose.Zip.SevenZip.SevenZipArchiveEntry adicionado.

fileInfo FileSystemInfo

Os metadados do arquivo ou pasta a ser compactado.

Retorna

SevenZipArchiveEntry

Instância de entrada SevenZip.

Exemplos

Compor arquivo com entrada criptografada comprimida com LZMA2.

using (FileStream sevenZipFile = File.Open("archive.7z", FileMode.Create))
{
    using (var archive = new SevenZipArchive())
    {
        archive.CreateEntry("entry1.bin", new MemoryStream(new byte[] {0x00, 0xFF}), new SevenZipEntrySettings(new SevenZipLZMA2CompressionSettings(), new SevenZipAESEncryptionSettings("test1")), new FileInfo("data1.bin")); 
        archive.Save(sevenZipFile);
    }
}

Observações

O nome da entrada é definido exclusivamente dentro do parâmetro name. O nome do arquivo fornecido no parâmetro fileInfo não afeta o nome da entrada.

fileInfo pode referir-se a System.IO.DirectoryInfo se a entrada for um diretório.

Exceções

InvalidOperationException

Ambos source e fileInfo são nulos ou source é nulo e fileInfo representa um diretório.

CreateEntry(string, Stream, SevenZipEntrySettings)

Cria uma única entrada dentro do arquivo.

public SevenZipArchiveEntry CreateEntry(string name, Stream source, SevenZipEntrySettings newEntrySettings = null)

Parâmetros

name string

O nome da entrada.

source Stream

O fluxo de entrada para a entrada.

newEntrySettings SevenZipEntrySettings

Configurações de compressão e criptografia usadas para o item Aspose.Zip.SevenZip.SevenZipArchiveEntry adicionado.

Retorna

SevenZipArchiveEntry

Instância de entrada Zip.

Exemplos

Compor arquivo 7z com compressão LZMA2 e criptografia de todas as entradas.

using (var archive = new SevenZipArchive(new SevenZipEntrySettings(new SevenZipLZMA2CompressionSettings(), new SevenZipAESEncryptionSettings("p@s$"))))
{
    archive.CreateEntry("data.bin", new MemoryStream(new byte[] {0x00, 0xFF} ));
    archive.Save("archive.7z");
}

CreateEntry(string, string, bool, SevenZipEntrySettings)

Cria uma única entrada dentro do arquivo.

public SevenZipArchiveEntry CreateEntry(string name, string path, bool openImmediately = false, SevenZipEntrySettings newEntrySettings = null)

Parâmetros

name string

O nome da entrada.

path string

O nome totalmente qualificado do novo arquivo ou o nome do arquivo relativo a ser compactado.

openImmediately bool

Verdadeiro se abrir o arquivo imediatamente, caso contrário, abrir o arquivo ao salvar o arquivo.

newEntrySettings SevenZipEntrySettings

Configurações de compressão e criptografia usadas para o item Aspose.Zip.SevenZip.SevenZipArchiveEntry adicionado.

Retorna

SevenZipArchiveEntry

Instância de entrada Zip.

Exemplos

using (FileStream sevenZipFile = File.Open("archive.7z", FileMode.Create))
{
    using (var archive = new SevenZipArchive(new SevenZipEntrySettings(new SevenZipLZMA2CompressionSettings())))
    {
        archive.CreateEntry("data.bin", "file.dat");
        archive.Save(sevenZipFile);
    }
}

Observações

O nome da entrada é definido exclusivamente dentro do parâmetro name. O nome do arquivo fornecido no parâmetro path não afeta o nome da entrada.

Se o arquivo for aberto imediatamente com o parâmetro openImmediately, ele ficará bloqueado até que o arquivo seja salvo.

Exceções

ArgumentNullException

path é nulo.

SecurityException

O chamador não tem a permissão necessária para acessar.

ArgumentException

O path está vazio, contém apenas espaços em branco ou contém caracteres inválidos.

UnauthorizedAccessException

O acesso ao arquivo path é negado.

PathTooLongException

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.

NotSupportedException

O arquivo em path contém dois pontos (:) no meio da string.

Dispose()

Executa tarefas definidas pelo aplicativo associadas à liberação, liberação ou redefinição de recursos não gerenciados.

public void Dispose()

Dispose(bool)

Executa tarefas definidas pelo aplicativo associadas à liberação, liberação ou redefinição de recursos não gerenciados.

protected virtual void Dispose(bool disposing)

Parâmetros

disposing bool

Se os recursos gerenciados devem ser descartados.

ExtractToDirectory(string, string)

Extrai todos os arquivos no arquivo para o diretório fornecido.

public void ExtractToDirectory(string destinationDirectory, string password = null)

Parâmetros

destinationDirectory string

O caminho para o diretório onde os arquivos extraídos serão colocados.

password string

Senha opcional para descriptografia do conteúdo.

Exemplos

using (var archive = new SevenZipArchive("archive.7z")) 
{ 
   archive.ExtractToDirectory("C:\\extracted");
}

Observações

Se o diretório não existir, ele será criado.

password é usado apenas para descriptografia do conteúdo. Se os nomes dos arquivos estiverem criptografados, forneça a senha no construtor Aspose.Zip.SevenZip.SevenZipArchive.#ctor(System.String,System.String) ou Aspose.Zip.SevenZip.SevenZipArchive.#ctor(System.IO.Stream,System.String).

Exceções

ArgumentNullException

destinationDirectory é nulo.

PathTooLongException

O caminho especificado, 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.

SecurityException

O chamador não tem a permissão necessária para acessar o diretório existente.

NotSupportedException

Se o diretório não existir, o caminho contém um caractere de dois pontos (:) que não faz parte de um rótulo de unidade (“C:").

ArgumentException

destinationDirectory é uma string de comprimento zero, contém apenas espaços em branco ou contém um ou mais caracteres inválidos. Você pode consultar caracteres inválidos usando o método System.IO.Path.GetInvalidPathChars. -ou- o caminho é prefixado ou contém apenas um caractere de dois pontos (:).

IOException

O diretório especificado pelo caminho é um arquivo. -ou- O nome da rede não é conhecido.

InvalidDataException

O arquivo está corrompido.

Save(Stream)

Salva o arquivo 7z no fluxo fornecido.

public void Save(Stream output)

Parâmetros

output Stream

Fluxo de destino.

Exemplos

using (FileStream sevenZipFile = File.Open("archive.7z", FileMode.Create))
{
  using (FileStream source = File.Open("data.bin", FileMode.Open, FileAccess.Read))
  {
    using (var archive = new SevenZipArchive())
    {
      archive.CreateEntry("data", source);
      archive.Save(sevenZipFile);
    }
  }
}

Observações

output deve ser buscável.

Exceções

ArgumentException

output não suporta busca.

ArgumentNullException

output é nulo.

InvalidOperationException

O codificador falhou ao comprimir os dados.

Save(string)

Salva o arquivo no destino fornecido.

public void Save(string destinationFileName)

Parâmetros

destinationFileName string

O caminho do arquivo a ser criado. Se o nome do arquivo especificado aponta para um arquivo existente, ele será sobrescrito.

Exemplos

using (FileStream source = File.Open("data.bin", FileMode.Open, FileAccess.Read))
{
   using (var archive = new SevenZipArchive(new SevenZipEntrySettings(new SevenZipLZMACompressionSettings())))
   {
      archive.CreateEntry("data", source);
      archive.Save("archive.7z");
   }
}

Observações

É possível salvar um arquivo no mesmo caminho de onde foi carregado. No entanto, isso não é recomendado porque essa abordagem usa cópia para um arquivo temporário.

Exceções

ArgumentNullException

destinationFileName é nulo.

SecurityException

O chamador não tem a permissão necessária para acessar.

ArgumentException

O destinationFileName está vazio, contém apenas espaços em branco ou contém caracteres inválidos.

UnauthorizedAccessException

O acesso ao arquivo destinationFileName é negado.

PathTooLongException

O destinationFileName, 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.

NotSupportedException

O arquivo em destinationFileName contém dois pontos (:) no meio da string.

SaveSplit(string, SplitSevenZipArchiveSaveOptions)

Salva o arquivo de múltiplos volumes no diretório de destino fornecido.

public void SaveSplit(string destinationDirectory, SplitSevenZipArchiveSaveOptions options)

Parâmetros

destinationDirectory string

O caminho para o diretório onde os segmentos do arquivo serão criados.

options SplitSevenZipArchiveSaveOptions

Opções para salvar o arquivo, incluindo o nome do arquivo.

Exemplos

using (SevenZipArchive archive = new SevenZipArchive())
{
    archive.CreateEntry("entry.bin", "data.bin");
    archive.SaveSplit(@"C:\Folder",  new SplitSevenZipArchiveSaveOptions("volume", 65536));
}

Observações

Este método compõe vários (n) arquivos filename.7z.001, filename.7z.002, ..., filename.7z.(n).

Não é possível transformar um arquivo existente em um arquivo de múltiplos volumes.

Exceções

InvalidOperationException

Este arquivo foi aberto a partir de uma fonte existente.

ArgumentNullException

destinationDirectory é nulo.

SecurityException

O chamador não tem a permissão necessária para acessar o diretório.

ArgumentException

destinationDirectory contém caracteres inválidos, como “, >, < ou |.

 Português