Class Archive

Class Archive

Nom dels espais: Aspose.Zip Assemblea: Aspose.Zip.dll (25.5.0)

Aquesta classe representa un fitxer d’arxiu zip. Utilitzeu-lo per compondre, extreure o actualitzar els arxius zip .

public class Archive : IArchive, IDisposable

Inheritance

object Archive

Implements

IArchive , IDisposable

Membres heretats

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

Constructors

Archive(ArchiveEntrySettings)

Inicialitza una nova instància de la classe Aspose.Zip.Archive amb configuracions opcionals per a les seves entrades.

public Archive(ArchiveEntrySettings newEntrySettings = null)

Parameters

newEntrySettings ArchiveEntrySettings

Configuracions de compressió i xifra utilitzades per a nous elements afegits Aspose.Zip.ArchiveEntry.Si no s’especifiqui, s’utilitzaria la compressió de Deflate més comuna sense xifraci.

Examples

L’exemple següent mostra com comprimir un sol arxiu amb les configuracions predefinides.

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

Archive(Tractament, ArchiveLoadOptions, ArchiveEntrySettings)

Inicialitza una nova instància de la classe Aspose.Zip.Arxiu i componeix una llista d’entrada que es pot extreure de l’arxiu.

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

Parameters

sourceStream Stream

La font de l’arxiu.

loadOptions ArchiveLoadOptions

Opcions per carregar arxius existents amb.

newEntrySettings ArchiveEntrySettings

Configuracions de compressió i xifra utilitzades per a nous elements afegits Aspose.Zip.ArchiveEntry.Si no s’especifiqui, s’utilitzaria la compressió de Deflate més comuna sense xifraci.

Examples

L’exemple següent extraeix un arxiu encriptat, i després descomprimeix la primera entrada a un .

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

Aquest constructor no descomprimeix cap entrada. Veure Aspose.Zip.ArchiveEntry.Open(System.String) mètode per descomprimir.

Exceptions

ArgumentException

sourceStream’ is not seekable.

InvalidDataException

El títol de xifra per a AES contrasta amb el mètode de compressió WinZip.

Archive(fonts, ArchiveLoadOptions, ArchiveEntrySettings)

Inicialitza una nova instància de la classe Aspose.Zip.Arxiu i componeix una llista d’entrada que es pot extreure de l’arxiu.

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

Parameters

path string

El completament qualificat o el camí relatiu a l’arxiu.

loadOptions ArchiveLoadOptions

Opcions per carregar arxius existents amb.

newEntrySettings ArchiveEntrySettings

Configuracions de compressió i xifra utilitzades per a nous elements afegits Aspose.Zip.ArchiveEntry.Si no s’especifiqui, s’utilitzaria la compressió de Deflate més comuna sense xifraci.

Examples

L’exemple següent extraeix un arxiu encriptat, i després descomprimeix la primera entrada a un .

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

Aquest constructor no descomprimeix cap entrada. Veure Aspose.Zip.ArchiveEntry.Open(System.String) mètode per descomprimir.

Exceptions

ArgumentNullException

path’ is null.

SecurityException

El client no té el permís d’accés requerit.

ArgumentException

La path’ és buida, només conté espais blancs, o conté caràcters invalidats.

UnauthorizedAccessException

L’accés al fitxer path" es nega.

PathTooLongException

El nom de fitxer especificat path", o tots dos superen la longitud màxima definida pel sistema. per exemple, en les plataformes basades en Windows, els passos han de ser menys de 248 caràcters, i els noms de fitxer han de ser menys de 260 caràcters.

NotSupportedException

El fitxer a path’ conté una columna (:) al mig de la cadena.

FileNotFoundException

El fitxer no es troba.

DirectoryNotFoundException

La ruta especificada és invalidada, com per exemple estar en un disc no mapat.

IOException

El fitxer ja està obert.

InvalidDataException

El fitxer està corromput.

Archive(Tècnic, Tècnic[], Arxiu Opcions)

Inicialitza una nova instància de la classe Aspose.Zip.Arxiu des de l’arxiu zip multi-volum i componeix una llista d’entrada que es pot extreure de l’arxiu.

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

Parameters

mainSegment string

Pas a l’últim segment de l’arxiu multivolum amb la direcció central.

Normalment aquest segment té una extensió *.zip i més petita que altres.

segmentsInOrder string []

Passos a cada segment però l’últim d’arxiu zip multi-volum respecte a l’ordre.

Normalment van anomenar filename.z01, filename.z02, …, filename.z(n-1).

loadOptions ArchiveLoadOptions

Opcions per carregar arxius existents amb.

Examples

Aquesta mostra extraeix a un directory un arxiu de tres segments.

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

Exceptions

EndOfStreamException

No es poden carregar captures ZIP perquè els fitxers proporcionats estan corromputs.

Properties

Entries

Obté entrades del tipus Aspose.Zip.ArchiveEntry que constitueix l’arxiu.

public ReadOnlyCollection<archiveentry> Entries { get; }

Valor de la propietat

ReadOnlyCollection < ArchiveEntry >

NewEntrySettings

Configuracions de compressió i xifra utilitzades per a nous elements afegits Aspose.Zip.ArchiveEntry.

public ArchiveEntrySettings NewEntrySettings { get; }

Valor de la propietat

ArchiveEntrySettings

Methods

CreateEntries(DireccióInfo, Bool)

Afegeix a l’arxiu tots els arxius i directoris recursivament en el directori donat.

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

Parameters

directory DirectoryInfo

Direcció per a la compressi.

includeRootDirectory bool

Indica si incloure o no la pròpia direcció de les arrels.

Returns

Archive

L’arxiu amb entrades compostes.

Examples

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

Exceptions

DirectoryNotFoundException

El camí a la direcció directory’ és invalid, com per exemple estar en un disc no mapat.

SecurityException

El convocador no té el permís requerit per accedir a la direcció directory'.

CreateEntries(Tàrrega, Bool)

Afegeix a l’arxiu tots els arxius i directoris recursivament en el directori donat.

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

Parameters

sourceDirectory string

Direcció per a la compressi.

includeRootDirectory bool

Indica si incloure o no la pròpia direcció de les arrels.

Returns

Archive

L’arxiu amb entrades compostes.

Examples

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

CreateEntry(string, string, bool, ArchiveEntrySettings)

Crear una entrada única dins de l’arxiu.

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

Parameters

name string

El nom de l’entrada.

path string

El nom completament qualificat del nou fitxer, o el nom de fitxer relatiu a ser comprès.

openImmediately bool

s cert, si obre el fitxer immediatament, d’altra banda obre el fitxer en l’arxiu d’emmagatzematge.

newEntrySettings ArchiveEntrySettings

Configuracions de compressió i xifra utilitzades per afegir el element Aspose.Zip.ArchiveEntry.

Returns

ArchiveEntry

Instància d’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

El nom d’entrada s’estableix únicament dins del paràmetre.El nom de fitxer proporcionat en el paràmetre no afecta el nom d’entrada.

Si el fitxer s’obre immediatament amb el paràmetre es bloqueja fins que l’arxiu es salva.

Exceptions

ArgumentNullException

path’ is null.

SecurityException

El client no té el permís d’accés requerit.

ArgumentException

La path’ és buida, només conté espais blancs, o conté caràcters invalidats.

UnauthorizedAccessException

L’accés al fitxer path" es nega.

PathTooLongException

El nom de fitxer especificat path", o tots dos superen la longitud màxima definida pel sistema. per exemple, en les plataformes basades en Windows, els passos han de ser menys de 248 caràcters, i els noms de fitxer han de ser menys de 260 caràcters.

NotSupportedException

El fitxer a path’ conté una columna (:) al mig de la cadena.

CreateEntry(Llista, Llista, ArxiuEntrySettings)

Crear una entrada única dins de l’arxiu.

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

Parameters

name string

El nom de l’entrada.

source Stream

El flux d’entrada per a l’entrada.

newEntrySettings ArchiveEntrySettings

Configuracions de compressió i xifra utilitzades per afegir el element Aspose.Zip.ArchiveEntry.

Returns

ArchiveEntry

Instància d’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(font, FileInfo, bool, ArchiveEntrySettings)

Crear una entrada única dins de l’arxiu.

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

Parameters

name string

El nom de l’entrada.

fileInfo FileInfo

Els metadats del fitxer s’han de compressar.

openImmediately bool

s cert, si obre el fitxer immediatament, d’altra banda obre el fitxer en l’arxiu d’emmagatzematge.

newEntrySettings ArchiveEntrySettings

Configuracions de compressió i xifra utilitzades per afegir el element Aspose.Zip.ArchiveEntry.

Returns

ArchiveEntry

Instància d’entrada ZIP.

Examples

Composar l’arxiu amb entrades encriptades amb diferents mètodes de xifració i contrasenyes cadascun.

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

El nom d’entrada s’estableix únicament dins del paràmetre.El nom de fitxer proporcionat en el paràmetre no afecta el nom d’entrada.

Si el fitxer s’obre immediatament amb el paràmetre es bloqueja fins que l’arxiu es salva.

Exceptions

UnauthorizedAccessException

fileInfo’ is read-only or is a directory.

DirectoryNotFoundException

La ruta especificada és invalidada, com per exemple estar en un disc no mapat.

IOException

El fitxer ja està obert.

CreateEntry(fonts, Stream, ArchiveEntrySettings, FileSystemInfo)

Crear una entrada única dins de l’arxiu.

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

Parameters

name string

El nom de l’entrada.

source Stream

El flux d’entrada per a l’entrada.

newEntrySettings ArchiveEntrySettings

Configuracions de compressió i xifra utilitzades per afegir el element Aspose.Zip.ArchiveEntry.

fileInfo FileSystemInfo

Els metadats del fitxer o de la carpeta per a ser comprès.

Returns

ArchiveEntry

Instància d’entrada ZIP.

Examples

Composició d’arxius amb entrada encripta.

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

El nom d’entrada s’estableix únicament dins del paràmetre.El nom de fitxer proporcionat en el paràmetre no afecta el nom d’entrada.

pot referir-se a System.IO.DirectoryInfo si la entrada és directori.

Exceptions

InvalidOperationException

Tothom source’ i fileInfo’ són null o source’ és null i fileInfo’ és per a la direcci.

CreateEntry(Títol: Func , ArxiuEntrySettings)

Crear una entrada única dins de l’arxiu.

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

Parameters

name string

El nom de l’entrada.

streamProvider Func < Stream >

El mètode que proporciona el flux d’entrada per a la entrada.

newEntrySettings ArchiveEntrySettings

Configuracions de compressió i xifra utilitzades per afegir el element Aspose.Zip.ArchiveEntry.

Returns

ArchiveEntry

Instància d’entrada ZIP.

Examples

Composició d’arxius amb entrada encripta.

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

Aquest mètode és per a .NET Framework 4.0 i superior i per a .NET Standard 2.0 versi.

DeleteEntry(ArchiveEntry)

Elimina la primera aparició de l’entrada específica de la llista d’entrada.

public Archive DeleteEntry(ArchiveEntry entry)

Parameters

entry ArchiveEntry

L’entrada per eliminar de la llista d’entrada.

Returns

Archive

L’arxiu amb la entrada es va eliminar.

Examples

A continuació podeu eliminar totes les entrades excepte les últimes:

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

L’arxiu està disposat.

DeleteEntry(Int)

Elimina l’entrada de la llista d’entrada per index.

public Archive DeleteEntry(int entryIndex)

Parameters

entryIndex int

L’índex basat en zero de l’entrada a eliminar.

Returns

Archive

L’arxiu amb la entrada es va eliminar.

Examples

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

Exceptions

ObjectDisposedException

L’arxiu està disposat.

ArgumentOutOfRangeException

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

Dispose()

Realitza tasques definides per aplicació associades amb el lliurament, el lliurament o la restauració de recursos no gestionats.

public void Dispose()

Dispose(La botiga)

Realitza tasques definides per aplicació associades amb el lliurament, el lliurament o la restauració de recursos no gestionats.

protected virtual void Dispose(bool disposing)

Parameters

disposing bool

S’han de disposar de recursos gestionats.

ExtractToDirectory(Tàrrega)

Extrata tots els arxius de l’arxiu a la direcció proporcionada.

public void ExtractToDirectory(string destinationDirectory)

Parameters

destinationDirectory string

El camí a la direcció per col·locar els arxius extraïts.

Examples

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

Remarks

Si la direcció no existeix, es crear.

Exceptions

ArgumentNullException

destinationDirectory’ is null.

PathTooLongException

Per exemple, en les plataformes basades en Windows, els camins han de ser menys de 248 caràcters i els noms de fitxers han de ser menys de 260 caràcters.

SecurityException

El sol·licitant no té l’autorització necessària per accedir a la direcció existent.

NotSupportedException

Si el directori no existeix, el recorregut conté un caràcter colon (:) que no forma part d’una etiqueta de disc (“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

El directori especificat per ruta és un arxiu. -o- El nom de la xarxa no és conegut.

InvalidDataException

Es va proporcionar una contrasenya equivocada. - o - L’arxiu està corromput.

Save(Arxiu, ArxiuOpcions)

Salva l’arxiu al corrent proporcionat.

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

Parameters

outputStream Stream

El flux de destinaci.

saveOptions ArchiveSaveOptions

Opcions per a l’arxiu d’estalvi.

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

Ha de ser escriïble.

Exceptions

ArgumentException

outputStream’ is not writable.

ObjectDisposedException

L’arxiu està disposat.

Save(Arxiu, ArchiveSaveOptions)

Salva l’arxiu al fitxer de destinació proporcionat.

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

Parameters

destinationFileName string

El camí de l’arxiu que s’ha de crear. Si el nom de fitxer especificat indica un fitxer existent, serà sobreescrit.

saveOptions ArchiveSaveOptions

Opcions per a l’arxiu d’estalvi.

Examples

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

Remarks

s possible guardar un arxiu al mateix camí que es va carregar des. No obstant això, això no es recomana perquè aquest enfocament utilitza la còpia a un arxiu temporal.

Exceptions

ArgumentNullException

destinationFileName’ is null.

SecurityException

El client no té el permís d’accés requerit.

ArgumentException

El destinationFileName’ és buit, només conté espais blancs, o conté caràcters invalidats.

UnauthorizedAccessException

L’accés al fitxer destinationFileName’ és negat.

PathTooLongException

El nom de fitxer especificat destinationFileName, o tots dos supera la longitud màxima definida pel sistema.Per exemple, en les plataformes basades en Windows, els camins han de ser menys de 248 caràcters, i els noms de fitxer han de ser menys de 260 caràcters.

NotSupportedException

El fitxer a destinationFileName’ conté una columna (:) al mig de la cadena.

FileNotFoundException

El fitxer no es troba.

DirectoryNotFoundException

La ruta especificada és invalidada, com per exemple estar en un disc no mapat.

IOException

El fitxer ja està obert.

SaveSplit(Llistat, SplitArchiveSaveOptions)

Salva l’arxiu multivolum a la direcció de destinació proporcionada.

public void SaveSplit(string destinationDirectory, SplitArchiveSaveOptions options)

Parameters

destinationDirectory string

El camí a la direcció on s’han de crear segments d’arxiu.

options SplitArchiveSaveOptions

Opcions per a l’emmagatzematge d’arxius, inclòs el nom de fitxer.

Examples

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

Remarks

Aquest mètode componeix diversos () arxius filename.z01, filename.z02, …, filename.z(n-1), filename.zip.

No es pot fer un arxiu existent multi-volum.

Exceptions

InvalidOperationException

Aquest arxiu va ser obert des de la font existent.

NotSupportedException

Aquest arxiu és compres amb el mètode XZ i encriptat.

ArgumentNullException

destinationDirectory’ is null.

SecurityException

El sol·licitant no té el permís requerit per accedir a la direcci.

ArgumentException

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

PathTooLongException

El camí especificat supera la longitud màxima definida pel sistema.

ObjectDisposedException

L’arxiu està disposat.

 Català