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
Implementa
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
sourceStream
não é buscável.
sourceStream
é nulo.
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
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.
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
parts
é nulo.
parts
não possui entradas.
O chamador não tem a permissão necessária para acessar.
O caminho para um arquivo está vazio, contém apenas espaços em branco ou contém caracteres inválidos.
O acesso a um arquivo é negado.
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.
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>
NewEntrySettings
Configurações de compressão e criptografia usadas para os novos itens Aspose.Zip.SevenZip.SevenZipArchiveEntry.
public SevenZipEntrySettings NewEntrySettings { get; }
Valor da Propriedade
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
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
O caminho para directory
é inválido, como estar em uma unidade não mapeada.
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
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
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
fileInfo
é somente leitura ou é um diretório.
O caminho especificado é inválido, como estar em uma unidade não mapeada.
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
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
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
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
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
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.
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
destinationDirectory
é nulo.
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.
O chamador não tem a permissão necessária para acessar o diretório existente.
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:").
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 (:).
O diretório especificado pelo caminho é um arquivo. -ou- O nome da rede não é conhecido.
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
output
não suporta busca.
output
é nulo.
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
destinationFileName
é nulo.
O chamador não tem a permissão necessária para acessar.
O destinationFileName
está vazio, contém apenas espaços em branco ou contém caracteres inválidos.
O acesso ao arquivo destinationFileName
é negado.
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.
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
Este arquivo foi aberto a partir de uma fonte existente.
destinationDirectory
é nulo.
O chamador não tem a permissão necessária para acessar o diretório.
destinationDirectory
contém caracteres inválidos, como “, >, < ou |.