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
Implements
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
sourceStream’ is not seekable.
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
path’ is null.
O requerente não tem a permissão necessária para o acesso.
O path’ é vazio, contém apenas espaços brancos, ou contém caracteres inválidos.
O acesso ao arquivo path" é negado.
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.
O arquivo no path’ contém uma coluna (:) no meio da linha.
O arquivo não foi encontrado.
O caminho especificado é inválido, como estar em uma unidade não mapeada.
O arquivo já está aberto.
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
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
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
Arquivo com entradas compostas.
Examples
using (Archive archive = new Archive())
{
DirectoryInfo folder = new DirectoryInfo("C:\folder");
archive.CreateEntries(folder);
archive.Save("folder.zip");
}
Exceptions
O caminho para a directory’ é inválido, como estar em um disco não mapeado.
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
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
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
path’ is null.
O requerente não tem a permissão necessária para o acesso.
O path’ é vazio, contém apenas espaços brancos, ou contém caracteres inválidos.
O acesso ao arquivo path" é negado.
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.
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
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
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
fileInfo’ is read-only or is a directory.
O caminho especificado é inválido, como estar em uma unidade não mapeada.
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
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
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
Instância de entrada ZIP.
Examples
Compre arquivo com entrada criptografada.
System.Func<Stream> 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
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 > 1)
archive.DeleteEntry(archive.Entries[0]);
archive.Save("last_entry.zip");
}
Exceptions
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
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
Arquivos estão disponíveis.
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
destinationDirectory’ is null.
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.
O chamador não tem a permissão necessária para acessar o diretório existente.
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:”).
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 (:).
O diretório especificado pelo caminho é um arquivo. -or- O nome da rede não é conhecido.
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
outputStream’ is not writable.
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
destinationFileName’ is null.
O requerente não tem a permissão necessária para o acesso.
A destinationFileName’ é vazia, contém apenas espaços brancos, ou contém caracteres inválidos.
O acesso ao arquivo destinationFileName’ é negado.
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.
O arquivo na destinationFileName’ contém uma coluna (:) no meio da linha.
O arquivo não foi encontrado.
O caminho especificado é inválido, como estar em uma unidade não mapeada.
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
Este arquivo foi aberto a partir da fonte existente.
Este arquivo é comprimido com o método XZ e criptografado.
destinationDirectory’ is null.
O chamador não tem a permissão necessária para aceder ao diretório.
destinationDirectory’ contains invalid characters such as “, >, <, or |.
O percurso especificado excede o comprimento máximo definido pelo sistema.
O arquivo foi dissolvido.