Class Archive

Class Archive

Nome do espaço: Aspose.Zip Assembleia: Aspose.Zip.dll (25.5.0)

Esta classe representa um arquivo zip. Use-o para compor, extrair, ou atualizar arquivos zip .

public class Archive : IArchive, IDisposable

Inheritance

object Archive

Implements

IArchive , IDisposable

Membros herdados

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

Constructors

Archive(ArchiveEntrySettings)

Inicia uma nova instância da classe Aspose.Zip.Archive com configurações opcionais para as suas entradas.

public Archive(ArchiveEntrySettings newEntrySettings = null)

Parameters

newEntrySettings ArchiveEntrySettings

As configurações de compressão e criptografia utilizadas para novos itens adicionados de Aspose.Zip.ArchiveEntry.Se não especificado, a compressão Deflate mais comum sem criptografia seria usada.

Examples

O exemplo a seguir mostra como comprimir um único arquivo com configurações padrão.

using (FileStream zipFile = File.Open("archive.zip", FileMode.Create))
{
    using (var archive = new Archive())
    {
        archive.CreateEntry("data.bin", "file.dat");
        archive.Save(zipFile);
    }
}

Archive(Stream, ArchiveLoadOptions, ArquivoEntrySettings)

Inicia uma nova instância da classe Aspose.Zip.Archive e compõe uma lista de entrada que pode ser extraída do arquivo.

public Archive(Stream sourceStream, ArchiveLoadOptions loadOptions = null, ArchiveEntrySettings newEntrySettings = null)

Parameters

sourceStream Stream

A fonte do arquivo.

loadOptions ArchiveLoadOptions

Opções para carregar arquivos existentes com.

newEntrySettings ArchiveEntrySettings

As configurações de compressão e criptografia utilizadas para novos itens adicionados de Aspose.Zip.ArchiveEntry.Se não especificado, a compressão Deflate mais comum sem criptografia seria usada.

Examples

O exemplo a seguir extrai um arquivo criptografado, depois descomprime a primeira entrada para a .

var fs = File.OpenRead("encrypted.zip");
var extracted = new MemoryStream();
using (Archive archive = new Archive(fs, new ArchiveLoadOptions() { DecryptionPassword = "p@s$" }))
{
    using (var decompressed = archive.Entries[0].Open())
    {
        byte[] b = new byte[8192];
        int bytesRead;
        while (0 < (bytesRead = decompressed.Read(b, 0, b.Length)))
            extracted.Write(b, 0, bytesRead);
    }
}

Remarks

Este fabricante não descomprime qualquer entrada. ver Aspose.Zip.ArchiveEntry.Open(System.String) método para descomprimir.

Exceptions

ArgumentException

sourceStream’ is not seekable.

InvalidDataException

O cabeçalho de criptografia para AES contradiz o método de compressão WinZip.

Archive(arquivo, arquivoOpções, arquivoEntrySettings)

Inicia uma nova instância da classe Aspose.Zip.Archive e compõe uma lista de entrada que pode ser extraída do arquivo.

public Archive(string path, ArchiveLoadOptions loadOptions = null, ArchiveEntrySettings newEntrySettings = null)

Parameters

path string

O totalmente qualificado ou o caminho relativo para o arquivo.

loadOptions ArchiveLoadOptions

Opções para carregar arquivos existentes com.

newEntrySettings ArchiveEntrySettings

As configurações de compressão e criptografia utilizadas para novos itens adicionados de Aspose.Zip.ArchiveEntry.Se não especificado, a compressão Deflate mais comum sem criptografia seria usada.

Examples

O exemplo a seguir extrai um arquivo criptografado, depois descomprime a primeira entrada para a .

var extracted = new MemoryStream();
using (Archive archive = new Archive("encrypted.zip", new ArchiveLoadOptions() { DecryptionPassword = "p@s$" }))
{
    using (var decompressed = archive.Entries[0].Open())
    {
        byte[] b = new byte[8192];
        int bytesRead;
        while (0 < (bytesRead = decompressed.Read(b, 0, b.Length)))
            extracted.Write(b, 0, bytesRead);
    }
}

Remarks

Este fabricante não descomprime qualquer entrada. ver Aspose.Zip.ArchiveEntry.Open(System.String) método para descomprimir.

Exceptions

ArgumentNullException

path’ is null.

SecurityException

O requerente não tem a permissão necessária para o acesso.

ArgumentException

O path’ é vazio, contém apenas espaços brancos, ou contém caracteres inválidos.

UnauthorizedAccessException

O acesso ao arquivo path" é negado.

PathTooLongException

O nome de arquivo especificado path", ou ambos excede o comprimento máximo definido pelo sistema. Por exemplo, em plataformas baseadas no Windows, os caminhos devem ser menores de 248 caracteres, e os nomes de arquivo devem ser menores de 260 caracteres.

NotSupportedException

O arquivo no path’ contém uma coluna (:) no meio da linha.

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.

InvalidDataException

O arquivo é corrompido.

Archive(Título, Título[ ], ArquivoOpções)

Inicia uma nova instância da classe Aspose.Zip.Archive do arquivo zip multi-volume e compõe uma lista de entrada que pode ser extraída do arquivo.

public Archive(string mainSegment, string[] segmentsInOrder, ArchiveLoadOptions loadOptions = null)

Parameters

mainSegment string

Caminho para o último segmento do arquivo multi-volume com o diretório central.

Normalmente este segmento tem *.zip extensão e menor do que outros.

segmentsInOrder string [ ]

Passos para cada segmento mas o último de arquivo zip multi-volume respeitando a ordem.

Geralmente eles chamavam filename.z01, filename.z02, …, filename.z(n-1).

loadOptions ArchiveLoadOptions

Opções para carregar arquivos existentes com.

Examples

Esta amostra extrai para um diretório um arquivo de três segmentos.

using (Archive a = new Archive("archive.zip", new string[] { "archive.z01", "archive.z02" }))
{
    a.ExtractToDirectory("destination");
}

Exceptions

EndOfStreamException

Não pode carregar cabeçalhos ZIP porque os arquivos fornecidos são corrompidos.

Properties

Entries

Obtenha entradas do tipo Aspose.Zip.ArchiveEntry que constitui o arquivo.

public ReadOnlyCollection<archiveentry> Entries { get; }

Valor da propriedade

ReadOnlyCollection e o PT; ArchiveEntry >

NewEntrySettings

As configurações de compressão e criptografia utilizadas para novos itens adicionados de Aspose.Zip.ArchiveEntry.

public ArchiveEntrySettings NewEntrySettings { get; }

Valor da propriedade

ArchiveEntrySettings

Methods

CreateEntries(DiretórioInfo, Bool)

Adicione ao arquivo todos os arquivos e diretórios repetidamente no diretório dado.

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

Parameters

directory DirectoryInfo

Diretório para compressão.

includeRootDirectory bool

Indica se incluir o diretório de raiz ou não.

Returns

Archive

Arquivo com entradas compostas.

Examples

using (Archive archive = new Archive())
{
    DirectoryInfo folder = new DirectoryInfo("C:\folder");
    archive.CreateEntries(folder);
    archive.Save("folder.zip");
}

Exceptions

DirectoryNotFoundException

O caminho para a directory’ é inválido, como estar em um disco não mapeado.

SecurityException

O chamador não tem a permissão necessária para aceder ao directory".

CreateEntries(Remoção, Bool)

Adicione ao arquivo todos os arquivos e diretórios repetidamente no diretório dado.

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

Parameters

sourceDirectory string

Diretório para compressão.

includeRootDirectory bool

Indica se incluir o diretório de raiz ou não.

Returns

Archive

Arquivo com entradas compostas.

Examples

using (Archive archive = new Archive())
{
    archive.CreateEntries("C:\folder");
    archive.Save("folder.zip");
}

CreateEntry(string, string, bool, arquivoEntrySettings)

Crie uma única entrada dentro do arquivo.

public ArchiveEntry CreateEntry(string name, string path, bool openImmediately = false, ArchiveEntrySettings newEntrySettings = null)

Parameters

name string

O nome da entrada.

path string

O nome totalmente qualificado do novo arquivo, ou o nome de arquivo relativo a ser comprimido.

openImmediately bool

É verdade, se abrir o arquivo imediatamente, caso contrário, abrir o arquivo em arquivo de armazenamento.

newEntrySettings ArchiveEntrySettings

As configurações de compressão e criptografia utilizadas para adicionar o item Aspose.Zip.ArchiveEntry.

Returns

ArchiveEntry

Instância de entrada ZIP.

Examples

using (FileStream zipFile = File.Open("archive.zip", FileMode.Create))
{
    using (var archive = new Archive())
    {
        archive.CreateEntry("data.bin", "file.dat");
        archive.Save(zipFile);
    }
}

Remarks

O nome de entrada é definido apenas dentro do parâmetro.O nome de arquivo fornecido no parâmetro não afeta o nome de entrada.

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

Exceptions

ArgumentNullException

path’ is null.

SecurityException

O requerente não tem a permissão necessária para o acesso.

ArgumentException

O path’ é vazio, contém apenas espaços brancos, ou contém caracteres inválidos.

UnauthorizedAccessException

O acesso ao arquivo path" é negado.

PathTooLongException

O nome de arquivo especificado path", ou ambos excede o comprimento máximo definido pelo sistema. Por exemplo, em plataformas baseadas no Windows, os caminhos devem ser menores de 248 caracteres, e os nomes de arquivo devem ser menores de 260 caracteres.

NotSupportedException

O arquivo no path’ contém uma coluna (:) no meio da linha.

CreateEntry(Arquivo, Arquivo, ArquivoEntrySettings)

Crie uma única entrada dentro do arquivo.

public ArchiveEntry CreateEntry(string name, Stream source, ArchiveEntrySettings newEntrySettings = null)

Parameters

name string

O nome da entrada.

source Stream

O fluxo de entrada para a entrada.

newEntrySettings ArchiveEntrySettings

As configurações de compressão e criptografia utilizadas para adicionar o item Aspose.Zip.ArchiveEntry.

Returns

ArchiveEntry

Instância de entrada ZIP.

Examples

using (var archive = new Archive(new ArchiveEntrySettings(null, new AesEcryptionSettings("p@s$", EncryptionMethod.AES256))))
{
    archive.CreateEntry("data.bin", new MemoryStream(new byte[] {0x00, 0xFF} ));
    archive.Save("archive.zip");
}

CreateEntry(arquivo, arquivo, arquivo, arquivoEntrySettings)

Crie uma única entrada dentro do arquivo.

public ArchiveEntry CreateEntry(string name, FileInfo fileInfo, bool openImmediately = false, ArchiveEntrySettings newEntrySettings = null)

Parameters

name string

O nome da entrada.

fileInfo FileInfo

Os metadados do arquivo devem ser comprimidos.

openImmediately bool

É verdade, se abrir o arquivo imediatamente, caso contrário, abrir o arquivo em arquivo de armazenamento.

newEntrySettings ArchiveEntrySettings

As configurações de compressão e criptografia utilizadas para adicionar o item Aspose.Zip.ArchiveEntry.

Returns

ArchiveEntry

Instância de entrada ZIP.

Examples

Compre arquivo com entradas criptografadas com diferentes métodos de criptografia e senhas cada um.

using (FileStream zipFile = File.Open("archive.zip", FileMode.Create))
{
    FileInfo fi1 = new FileInfo("data1.bin");
    FileInfo fi2 = new FileInfo("data2.bin");
    FileInfo fi3 = new FileInfo("data3.bin");
    using (var archive = new Archive())
    {
        archive.CreateEntry("entry1.bin", fi1, false, new ArchiveEntrySettings(new DeflateCompressionSettings(), new TraditionalEncryptionSettings("pass1")));
        archive.CreateEntry("entry2.bin", fi2, false, new ArchiveEntrySettings(new DeflateCompressionSettings(), new AesEcryptionSettings("pass2", EncryptionMethod.AES128)));
        archive.CreateEntry("entry3.bin", fi3, false, new ArchiveEntrySettings(new DeflateCompressionSettings(), new AesEcryptionSettings("pass3", EncryptionMethod.AES256)));
        archive.Save(zipFile);
    }
}

Remarks

O nome de entrada é definido apenas dentro do parâmetro.O nome de arquivo fornecido no parâmetro não afeta o nome de entrada.

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

Exceptions

UnauthorizedAccessException

fileInfo’ is read-only or is a directory.

DirectoryNotFoundException

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

IOException

O arquivo já está aberto.

CreateEntry(arquivo, arquivo, arquivoEntrySettings, arquivoSystemInfo)

Crie uma única entrada dentro do arquivo.

public ArchiveEntry CreateEntry(string name, Stream source, ArchiveEntrySettings newEntrySettings, FileSystemInfo fileInfo)

Parameters

name string

O nome da entrada.

source Stream

O fluxo de entrada para a entrada.

newEntrySettings ArchiveEntrySettings

As configurações de compressão e criptografia utilizadas para adicionar o item Aspose.Zip.ArchiveEntry.

fileInfo FileSystemInfo

Os metadados do arquivo ou folha para ser comprimido.

Returns

ArchiveEntry

Instância de entrada ZIP.

Examples

Compre arquivo com entrada criptografada.

using (FileStream zipFile = File.Open("archive.zip", FileMode.Create))
{
    using (var archive = new Archive())
    {
        archive.CreateEntry("entry1.bin", new MemoryStream(new byte[] {0x00, 0xFF} ), new ArchiveEntrySettings(new DeflateCompressionSettings(), new TraditionalEncryptionSettings("pass1")), new FileInfo("data1.bin")); 
        archive.Save(zipFile);
    }
}

Remarks

O nome de entrada é definido apenas dentro do parâmetro.O nome de arquivo fornecido no parâmetro não afeta o nome de entrada.

Pode referir-se a System.IO.DirectoryInfo se a entrada é diretório.

Exceptions

InvalidOperationException

Tanto source’ e fileInfo’ são nulo ou source’ é nulo e fileInfo’ é para diretório.

CreateEntry(Título: Func , ArquivoEntrySettings)

Crie uma única entrada dentro do arquivo.

public ArchiveEntry CreateEntry(string name, Func<stream> streamProvider, ArchiveEntrySettings newEntrySettings = null)

Parameters

name string

O nome da entrada.

streamProvider Func e o PT; Stream >

O método fornece fluxo de entrada para a entrada.

newEntrySettings ArchiveEntrySettings

As configurações de compressão e criptografia utilizadas para adicionar o item Aspose.Zip.ArchiveEntry.

Returns

ArchiveEntry

Instância de entrada ZIP.

Examples

Compre arquivo com entrada criptografada.

System.Func&lt;Stream&gt; provider = delegate(){ return new MemoryStream(new byte[]{0xFF, 0x00}); };
using (FileStream zipFile = File.Open("archive.zip", FileMode.Create))
{
    using (var archive = new Archive())
    {
        archive.CreateEntry("entry1.bin", provider, new ArchiveEntrySettings(new DeflateCompressionSettings(), new TraditionalEncryptionSettings("pass1")))); 
        archive.Save(zipFile);
    }
}

Remarks

Este método é para .NET Framework 4.0 e acima e para .NET Standard 2.0 versão.

DeleteEntry(ArchiveEntry)

Remove a primeira ocorrência da entrada específica da lista de entrada.

public Archive DeleteEntry(ArchiveEntry entry)

Parameters

entry ArchiveEntry

A entrada para remover da lista de entradas.

Returns

Archive

O arquivo com a entrada foi apagado.

Examples

Aqui está como você pode remover todas as entradas exceto a última:

using (var archive = new Archive("archive.zip"))
{
    while (archive.Entries.Count &gt; 1)
        archive.DeleteEntry(archive.Entries[0]);
    archive.Save("last_entry.zip");
}

Exceptions

ObjectDisposedException

O arquivo foi dissolvido.

DeleteEntry(Int)

Remova a entrada da lista de entrada por índice.

public Archive DeleteEntry(int entryIndex)

Parameters

entryIndex int

O índice baseado em zero da entrada a ser removido.

Returns

Archive

O arquivo com a entrada foi apagado.

Examples

using (var archive = new TarArchive("two_files.zip"))
{
    archive.DeleteEntry(0);
    archive.Save("single_file.zip");
}

Exceptions

ObjectDisposedException

Arquivos estão disponíveis.

ArgumentOutOfRangeException

entryIndex’ is less than 0.-or- entryIndex’ is equal to or greater than ‘Entries’ count.

Dispose()

Exerce tarefas definidas por aplicação associadas à libertação, libertação ou restauração de recursos não gerenciados.

public void Dispose()

Dispose(Bolha)

Exerce tarefas definidas por aplicação associadas à libertação, libertação ou restauração de recursos não gerenciados.

protected virtual void Dispose(bool disposing)

Parameters

disposing bool

Se os recursos gerenciados devem ser dissolvidos.

ExtractToDirectory(Redação)

Extrair todos os arquivos do arquivo para o diretório fornecido.

public void ExtractToDirectory(string destinationDirectory)

Parameters

destinationDirectory string

O caminho para o diretório para colocar os arquivos extraídos.

Examples

using (var archive = new Archive("archive.zip")) 
{ 
   archive.ExtractToDirectory("C:\extracted");
}

Remarks

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

Exceptions

ArgumentNullException

destinationDirectory’ is null.

PathTooLongException

O caminho especificado, o nome do arquivo ou ambos excede o comprimento máximo definido pelo sistema. Por exemplo, em plataformas baseadas no Windows, os caminhos devem ser menores de 248 caracteres e os nomes do arquivo devem ser menores 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 existe, o caminho contém um caráter colon (:) que não faz parte de uma etiqueta de disco (“C:”).

ArgumentException

destinationDirectory’ is a zero-length string, contains only white space, or contains one or more invalid characters. You can query for invalid characters by using the System.IO.Path.GetInvalidPathChars method.-or- path is prefixed with, or contains, only a colon character (:).

IOException

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

InvalidDataException

A senha errada foi fornecida. - ou - Arquivo é corrompido.

Save(Arquivo, ArquivoOpções)

Salve arquivo para o fluxo fornecido.

public void Save(Stream outputStream, ArchiveSaveOptions saveOptions = null)

Parameters

outputStream Stream

fluxo de destino.

saveOptions ArchiveSaveOptions

Opções de armazenamento de arquivos.

Examples

using (FileStream zipFile = File.Open("archive.zip", FileMode.Create))
{
    using (var archive = new Archive())
    {
        archive.CreateEntry("entry.bin", "data.bin");
        archive.Save(zipFile);
    }
}

Remarks

Tem que ser escrita.

Exceptions

ArgumentException

outputStream’ is not writable.

ObjectDisposedException

O arquivo foi dissolvido.

Save(Arquivo, ArquivoOpções)

Salve arquivo para o arquivo de destino fornecido.

public void Save(string destinationFileName, ArchiveSaveOptions saveOptions = null)

Parameters

destinationFileName string

Se o nome do arquivo especificado aponta para um arquivo existente, ele será sobreescrito.

saveOptions ArchiveSaveOptions

Opções de armazenamento de arquivos.

Examples

using (var archive = new Archive())
{
    archive.CreateEntry("entry.bin", "data.bin");
    archive.Save("archive.zip",  new ArchiveSaveOptions() { Encoding = Encoding.ASCII });
}

Remarks

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

Exceptions

ArgumentNullException

destinationFileName’ is null.

SecurityException

O requerente não tem a permissão necessária para o acesso.

ArgumentException

A destinationFileName’ é vazia, contém apenas espaços brancos, ou contém caracteres inválidos.

UnauthorizedAccessException

O acesso ao arquivo destinationFileName’ é negado.

PathTooLongException

O nome de arquivo especificado destinationFileName, ou ambos excede o comprimento máximo definido pelo sistema.Por exemplo, em plataformas baseadas no Windows, os caminhos devem ser menores de 248 caracteres, e os nomes de arquivo devem ser menores de 260 caracteres.

NotSupportedException

O arquivo na destinationFileName’ contém uma coluna (:) no meio da linha.

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.

SaveSplit(Título: SplitArchiveSaveOptions)

Salve o arquivo multi-volume para o directorio de destino fornecido.

public void SaveSplit(string destinationDirectory, SplitArchiveSaveOptions options)

Parameters

destinationDirectory string

O caminho para o directorio onde os segmentos de arquivo devem ser criados.

options SplitArchiveSaveOptions

Opções de armazenamento de arquivos, incluindo o nome do arquivo.

Examples

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

Remarks

Este método compõe vários () arquivos filename.z01, filename.z02, …, filename.z(n-1), filename.zip.

Não é possível fazer arquivos existentes multi-volume.

Exceptions

InvalidOperationException

Este arquivo foi aberto a partir da fonte existente.

NotSupportedException

Este arquivo é comprimido com o método XZ e criptografado.

ArgumentNullException

destinationDirectory’ is null.

SecurityException

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

ArgumentException

destinationDirectory’ contains invalid characters such as “, >, <, or |.

PathTooLongException

O percurso especificado excede o comprimento máximo definido pelo sistema.

ObjectDisposedException

O arquivo foi dissolvido.

 Português