Class Archive

Class Archive

Il nome: Aspose.Zip Assemblea: Aspose.Zip.dll (25.5.0)

Questa classe rappresenta un file di archivio zip. Utilizza per compilare, estrarre o aggiornare gli archivi zip .

public class Archive : IArchive, IDisposable

Inheritance

object Archive

Implements

IArchive , IDisposable

I membri ereditari

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

Constructors

Archive(ArchiveEntrySettings)

Inizia una nuova instanza della classe Aspose.Zip.Archive con impostazioni facoltative per le sue entrate.

public Archive(ArchiveEntrySettings newEntrySettings = null)

Parameters

newEntrySettings ArchiveEntrySettings

Impostazioni di compressione e crittografia utilizzate per gli articoli Aspose.Zip.ArchiveEntry appena aggiunti.Se non specificato, la compressione Deflate più comune senza crittografia sarebbe usato.

Examples

L’esempio seguente mostra come comprimere un singolo file con le impostazioni predefinite.

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, ArchiviLoadOptions, ArchiviEntrySettings)

Inizializza una nuova instanza della classe Aspose.Zip.Archivio e compone un elenco di entrate che può essere estratto dall’archivio.

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

Parameters

sourceStream Stream

La fonte dell’archivio.

loadOptions ArchiveLoadOptions

Opzioni per caricare archivi esistenti con.

newEntrySettings ArchiveEntrySettings

Impostazioni di compressione e crittografia utilizzate per gli articoli Aspose.Zip.ArchiveEntry appena aggiunti.Se non specificato, la compressione Deflate più comune senza crittografia sarebbe usato.

Examples

L’esempio seguente extrage un archivio crittografato, quindi decomprime la prima entrata in 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

Questo costruttore non decomprime nessuna entrata. vedi Aspose.Zip.ArchiveEntry.Open(System.String) metodo per la decompressione.

Exceptions

ArgumentException

sourceStream’ is not seekable.

InvalidDataException

Il titolo di crittografia per AES è in contrasto con il metodo di compressione WinZip.

Archive(string, ArchiveLoadOptions, ArchiveEntrySettings)

Inizializza una nuova instanza della classe Aspose.Zip.Archivio e compone un elenco di entrate che può essere estratto dall’archivio.

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

Parameters

path string

Il percorso completamente qualificato o relativo al file di archivio.

loadOptions ArchiveLoadOptions

Opzioni per caricare archivi esistenti con.

newEntrySettings ArchiveEntrySettings

Impostazioni di compressione e crittografia utilizzate per gli articoli Aspose.Zip.ArchiveEntry appena aggiunti.Se non specificato, la compressione Deflate più comune senza crittografia sarebbe usato.

Examples

L’esempio seguente extrage un archivio crittografato, quindi decomprime la prima entrata in 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

Questo costruttore non decomprime nessuna entrata. vedi Aspose.Zip.ArchiveEntry.Open(System.String) metodo per la decompressione.

Exceptions

ArgumentNullException

path’ is null.

SecurityException

Il chiamante non ha il permesso di accesso richiesto.

ArgumentException

La path’ è vuota, contiene solo spazi bianchi, o contiene caratteri invalidi.

UnauthorizedAccessException

L’accesso al file path" è rifiutato.

PathTooLongException

La specifica path’, nome del file, o entrambi superano la lunghezza massima definita dal sistema. ad esempio, su piattaforme basate su Windows, i percorsi devono essere meno di 248 caratteri, e i nomi del file devono essere meno di 260 caratteri.

NotSupportedException

Il file in path’ contiene una colonna (:) nel mezzo della riga.

FileNotFoundException

Il file non è trovato.

DirectoryNotFoundException

Il percorso specificato è invalido, ad esempio essere su un drive non mappato.

IOException

Il file è già aperto.

InvalidDataException

Il file è corrotto.

Archive(String e String[ ], Archiviare le opzioni)

Inizia una nuova instanza della classe Aspose.Zip.Archivato dall’archivio zip multi-volume e compone un elenco di entrate che può essere estratto dall’archivio.

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

Parameters

mainSegment string

Passo all’ultimo segmento dell’archivio multi-volume con la directory centrale.

Di solito questo segmento ha *.zip estensione e più piccolo di altri.

segmentsInOrder string [ ]

Passaggi per ogni segmento ma l’ultimo di multi-volume zip archivio rispettando l’ordine.

Di solito hanno chiamato filename.z01, filename.z02, …, filename.z(n-1).

loadOptions ArchiveLoadOptions

Opzioni per caricare archivi esistenti con.

Examples

Questo campione estrae in un directory un archivio di tre segmenti.

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

Exceptions

EndOfStreamException

Non è possibile caricare i titoli ZIP perché i file forniti sono corrotti.

Properties

Entries

Riceve le entrate di Aspose.Zip.ArchiveEntry tipo che costituisce l’archivio.

public ReadOnlyCollection<archiveentry> Entries { get; }

Valore di proprietà

ReadOnlyCollection di < ArchiveEntry >

NewEntrySettings

Impostazioni di compressione e crittografia utilizzate per gli articoli Aspose.Zip.ArchiveEntry appena aggiunti.

public ArchiveEntrySettings NewEntrySettings { get; }

Valore di proprietà

ArchiveEntrySettings

Methods

CreateEntries(Sito ufficiale, bool)

Aggiungi all’archivio tutti i file e i directory ricorrenzialmente nel direttore dato.

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

Parameters

directory DirectoryInfo

Direttore per la compressione.

includeRootDirectory bool

Indica se includere lo stesso directory root o meno.

Returns

Archive

L’archivio con entrate composte.

Examples

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

Exceptions

DirectoryNotFoundException

Il percorso verso la directory’ è invalido, ad esempio essere su un disco non mappato.

SecurityException

Il chiamante non ha il permesso richiesto per accedere alla directory".

CreateEntries(String e Bool)

Aggiungi all’archivio tutti i file e i directory ricorrenzialmente nel direttore dato.

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

Parameters

sourceDirectory string

Direttore per la compressione.

includeRootDirectory bool

Indica se includere lo stesso directory root o meno.

Returns

Archive

L’archivio con entrate composte.

Examples

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

CreateEntry(string, string, bool, archivioSettings)

Creare un singolo ingresso all’interno dell’archivio.

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

Parameters

name string

Il nome dell’ingresso.

path string

Il nome del nuovo file o il relativo nome del file da comprimere.

openImmediately bool

È vero, se si apre immediatamente il file, altrimenti si apre il file su archivio di archiviazione.

newEntrySettings ArchiveEntrySettings

Impostazioni di compressione e crittografia utilizzate per aggiungere Aspose.Zip.ArchiveEntry.

Returns

ArchiveEntry

Introduzione di 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

Il nome di ingresso è impostato esclusivamente all’interno del parametro.Il nome del file fornito nel parametro non influisce sul nome di ingresso.

Se il file viene aperto immediatamente con il parametro viene bloccato fino a quando l’archivio è salvato.

Exceptions

ArgumentNullException

path’ is null.

SecurityException

Il chiamante non ha il permesso di accesso richiesto.

ArgumentException

La path’ è vuota, contiene solo spazi bianchi, o contiene caratteri invalidi.

UnauthorizedAccessException

L’accesso al file path" è rifiutato.

PathTooLongException

La specifica path’, nome del file, o entrambi superano la lunghezza massima definita dal sistema. ad esempio, su piattaforme basate su Windows, i percorsi devono essere meno di 248 caratteri, e i nomi del file devono essere meno di 260 caratteri.

NotSupportedException

Il file in path’ contiene una colonna (:) nel mezzo della riga.

CreateEntry(String, Stream, ArchiviSettings)

Creare un singolo ingresso all’interno dell’archivio.

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

Parameters

name string

Il nome dell’ingresso.

source Stream

Il flusso di ingresso per l’ingresso.

newEntrySettings ArchiveEntrySettings

Impostazioni di compressione e crittografia utilizzate per aggiungere Aspose.Zip.ArchiveEntry.

Returns

ArchiveEntry

Introduzione di 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(String, FileInfo, Bool, ArchivioEntrySettings)

Creare un singolo ingresso all’interno dell’archivio.

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

Parameters

name string

Il nome dell’ingresso.

fileInfo FileInfo

I metadati del file devono essere compressi.

openImmediately bool

È vero, se si apre immediatamente il file, altrimenti si apre il file su archivio di archiviazione.

newEntrySettings ArchiveEntrySettings

Impostazioni di compressione e crittografia utilizzate per aggiungere Aspose.Zip.ArchiveEntry.

Returns

ArchiveEntry

Introduzione di Zip.

Examples

Composta archivio con entrate crittografate con diversi metodi di crittografia e password ciascuno.

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

Il nome di ingresso è impostato esclusivamente all’interno del parametro.Il nome del file fornito nel parametro non influisce sul nome di ingresso.

Se il file viene aperto immediatamente con il parametro viene bloccato fino a quando l’archivio è salvato.

Exceptions

UnauthorizedAccessException

fileInfo’ is read-only or is a directory.

DirectoryNotFoundException

Il percorso specificato è invalido, ad esempio essere su un drive non mappato.

IOException

Il file è già aperto.

CreateEntry(string, Stream, ArchiveEntrySettings, FileSystemInfo)

Creare un singolo ingresso all’interno dell’archivio.

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

Parameters

name string

Il nome dell’ingresso.

source Stream

Il flusso di ingresso per l’ingresso.

newEntrySettings ArchiveEntrySettings

Impostazioni di compressione e crittografia utilizzate per aggiungere Aspose.Zip.ArchiveEntry.

fileInfo FileSystemInfo

I metadati del file o della cartella da comprimere.

Returns

ArchiveEntry

Introduzione di Zip.

Examples

Inserisci un archivio con ingresso crittografato.

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

Il nome di ingresso è impostato esclusivamente all’interno del parametro.Il nome del file fornito nel parametro non influisce sul nome di ingresso.

può riferirsi a System.IO.DirectoryInfo se l’ingresso è directory.

Exceptions

InvalidOperationException

Entrambi i source’ e fileInfo’ sono null o source’ è null e fileInfo’ è per directory.

CreateEntry(Strumento, Func, di ArchiveEntrySettings)

Creare un singolo ingresso all’interno dell’archivio.

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

Parameters

name string

Il nome dell’ingresso.

streamProvider Func di < Stream >

Il metodo che fornisce il flusso di input per l’ingresso.

newEntrySettings ArchiveEntrySettings

Impostazioni di compressione e crittografia utilizzate per aggiungere Aspose.Zip.ArchiveEntry.

Returns

ArchiveEntry

Introduzione di Zip.

Examples

Inserisci un archivio con ingresso crittografato.

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

Questo metodo è per .NET Framework 4.0 e superiore e per .NET Standard 2.0 versione.

DeleteEntry(ArchiveEntry)

Rimuove la prima comparsa dell’ingresso specifico dalla lista di ingressi.

public Archive DeleteEntry(ArchiveEntry entry)

Parameters

entry ArchiveEntry

L’ingresso da rimuovere dall’elenco delle entrate.

Returns

Archive

L’archivio con l’ingresso è stato cancellato.

Examples

Ecco come puoi rimuovere tutte le entrate tranne l’ultima:

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’archivio è disattivato.

DeleteEntry(int)

Rimuovere l’ingresso dalla lista di ingressi per indice.

public Archive DeleteEntry(int entryIndex)

Parameters

entryIndex int

L’indice basato su zero dell’ingresso da rimuovere.

Returns

Archive

L’archivio con l’ingresso è stato cancellato.

Examples

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

Exceptions

ObjectDisposedException

L’archivio è disattivato.

ArgumentOutOfRangeException

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

Dispose()

Esegue compiti definiti in applicazione associati al rilascio, al rilascio o al riutilizzo di risorse non gestite.

public void Dispose()

Dispose(di bool)

Esegue compiti definiti in applicazione associati al rilascio, al rilascio o al riutilizzo di risorse non gestite.

protected virtual void Dispose(bool disposing)

Parameters

disposing bool

Le risorse gestite dovrebbero essere sprecate.

ExtractToDirectory(String)

Estratta tutti i file nell’archivio nel directory fornito.

public void ExtractToDirectory(string destinationDirectory)

Parameters

destinationDirectory string

Il percorso verso il directory per posizionare i file estratti.

Examples

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

Remarks

Se il directory non esiste, sarà creato.

Exceptions

ArgumentNullException

destinationDirectory’ is null.

PathTooLongException

Il percorso specificato, il nome del file, o entrambi superano la lunghezza massima definita dal sistema. Ad esempio, su piattaforme basate su Windows, i percorsi devono essere meno di 248 caratteri e i nomi del file devono essere meno di 260 caratteri.

SecurityException

Il chiamante non ha il permesso richiesto per accedere al directory esistente.

NotSupportedException

Se la directory non esiste, il percorso contiene un carattere colonico (:) che non fa parte di un’etichetta drive (“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

Il directory specificato per percorso è un file. -or- Il nome della rete non è noto.

InvalidDataException

La password sbagliata è stata fornita. - o - Archivio è corrotto.

Save(Strumento, ArchiviSaveOptions)

Salva archivio al flusso fornito.

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

Parameters

outputStream Stream

Il flusso di destinazione.

saveOptions ArchiveSaveOptions

Opzioni per archivi di risparmio.

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

Deve essere scritta.

Exceptions

ArgumentException

outputStream’ is not writable.

ObjectDisposedException

L’archivio è disattivato.

Save(String, ArchiviSaveOptions)

Salva l’archivio al file di destinazione fornito.

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

Parameters

destinationFileName string

Il percorso dell’archivio da creare.Se il nome del file specificato indica un file esistente, sarà sovrappeso.

saveOptions ArchiveSaveOptions

Opzioni per archivi di risparmio.

Examples

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

Remarks

È possibile salvare un archivio nello stesso percorso dal quale è stato caricato. tuttavia, questo non è raccomandato perché questo approccio utilizza la copia a un file temporaneo.

Exceptions

ArgumentNullException

destinationFileName’ is null.

SecurityException

Il chiamante non ha il permesso di accesso richiesto.

ArgumentException

La destinationFileName’ è vuota, contiene solo spazi bianchi, o contiene caratteri invalidi.

UnauthorizedAccessException

L’accesso al file destinationFileName’ è negato.

PathTooLongException

La specifica destinationFileName’, nome del file, o entrambi superano la lunghezza massima definita dal sistema.Per esempio, su piattaforme basate su Windows, i percorsi devono essere meno di 248 caratteri, e i nomi del file devono essere meno di 260 caratteri.

NotSupportedException

Il file in destinationFileName’ contiene una colonna (:) nel mezzo della riga.

FileNotFoundException

Il file non è trovato.

DirectoryNotFoundException

Il percorso specificato è invalido, ad esempio essere su un drive non mappato.

IOException

Il file è già aperto.

SaveSplit(String, SplitArchiveSaveOptions)

Salva l’archivio multi-volume al directory di destinazione fornito.

public void SaveSplit(string destinationDirectory, SplitArchiveSaveOptions options)

Parameters

destinationDirectory string

Il percorso verso il directory dove si creano i segmenti di archivio.

options SplitArchiveSaveOptions

Opzioni per il salvataggio di archivi, tra cui il nome del file.

Examples

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

Remarks

Questo metodo compone diversi () file filename.z01, filename.z02, …, filename.z(n-1), filename.zip.

Non è possibile creare un archivio multi-volume.

Exceptions

InvalidOperationException

Questo archivio è stato aperto dalla fonte esistente.

NotSupportedException

Questo archivio è compreso con il metodo XZ e crittografato.

ArgumentNullException

destinationDirectory’ is null.

SecurityException

Il chiamante non ha il permesso richiesto per accedere al directory.

ArgumentException

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

PathTooLongException

Il percorso specificato supera la lunghezza massima definita dal sistema.

ObjectDisposedException

L’archivio è disattivato.

 Italiano