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
Implements
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
sourceStream’ is not seekable.
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
path’ is null.
Il chiamante non ha il permesso di accesso richiesto.
La path’ è vuota, contiene solo spazi bianchi, o contiene caratteri invalidi.
L’accesso al file path" è rifiutato.
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.
Il file in path’ contiene una colonna (:) nel mezzo della riga.
Il file non è trovato.
Il percorso specificato è invalido, ad esempio essere su un drive non mappato.
Il file è già aperto.
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
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à
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
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
Il percorso verso la directory’ è invalido, ad esempio essere su un disco non mappato.
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
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
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
path’ is null.
Il chiamante non ha il permesso di accesso richiesto.
La path’ è vuota, contiene solo spazi bianchi, o contiene caratteri invalidi.
L’accesso al file path" è rifiutato.
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.
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
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
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
fileInfo’ is read-only or is a directory.
Il percorso specificato è invalido, ad esempio essere su un drive non mappato.
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
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
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
Introduzione di Zip.
Examples
Inserisci un archivio con ingresso crittografato.
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
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
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 > 1)
archive.DeleteEntry(archive.Entries[0]);
archive.Save("last_entry.zip");
}
Exceptions
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
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
L’archivio è disattivato.
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
destinationDirectory’ is null.
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.
Il chiamante non ha il permesso richiesto per accedere al directory esistente.
Se la directory non esiste, il percorso contiene un carattere colonico (:) che non fa parte di un’etichetta drive (“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 (:).
Il directory specificato per percorso è un file. -or- Il nome della rete non è noto.
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
outputStream’ is not writable.
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
destinationFileName’ is null.
Il chiamante non ha il permesso di accesso richiesto.
La destinationFileName’ è vuota, contiene solo spazi bianchi, o contiene caratteri invalidi.
L’accesso al file destinationFileName’ è negato.
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.
Il file in destinationFileName’ contiene una colonna (:) nel mezzo della riga.
Il file non è trovato.
Il percorso specificato è invalido, ad esempio essere su un drive non mappato.
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
Questo archivio è stato aperto dalla fonte esistente.
Questo archivio è compreso con il metodo XZ e crittografato.
destinationDirectory’ is null.
Il chiamante non ha il permesso richiesto per accedere al directory.
destinationDirectory’ contains invalid characters such as “, >, <, or |.
Il percorso specificato supera la lunghezza massima definita dal sistema.
L’archivio è disattivato.