Class SevenZipArchive
Namespace: Aspose.Zip.SevenZip
Assembly: Aspose.Zip.dll (25.1.0)
Questa classe rappresenta un file di archivio 7z. Usala per comporre ed estrarre archivi 7z.
public class SevenZipArchive : IArchive, IDisposable
Ereditarietà
Implementa
Membri Ereditati
object.GetType(), object.MemberwiseClone(), object.ToString(), object.Equals(object?), object.Equals(object?, object?), object.ReferenceEquals(object?, object?), object.GetHashCode()
Costruttori
SevenZipArchive(SevenZipEntrySettings)
Inizializza una nuova istanza della classe Aspose.Zip.SevenZip.SevenZipArchive con impostazioni opzionali per le sue voci.
public SevenZipArchive(SevenZipEntrySettings newEntrySettings = null)
Parametri
newEntrySettings
SevenZipEntrySettings
Impostazioni di compressione e crittografia utilizzate per i nuovi elementi Aspose.Zip.SevenZip.SevenZipArchiveEntry aggiunti.
Se non specificato, verrà utilizzata la compressione LZMA senza crittografia.
Esempi
Il seguente esempio mostra come comprimere un singolo file con impostazioni predefinite: compressione LZMA senza crittografia.
using (FileStream sevenZipFile = File.Open("archive.7z", FileMode.Create))
{
using (var archive = new SevenZipArchive())
{
archive.CreateEntry("data.bin", "file.dat");
archive.Save(sevenZipFile);
}
}
SevenZipArchive(Stream, string)
Inizializza una nuova istanza della classe Aspose.Zip.SevenZip.SevenZipArchive e compone un elenco di voci che possono essere estratte dall’archivio.
public SevenZipArchive(Stream sourceStream, string password = null)
Parametri
sourceStream
Stream
La sorgente dell’archivio.
password
string
Password opzionale per la decrittazione. Se i nomi dei file sono crittografati, deve essere presente.
Esempi
using (SevenZipArchive archive = new SevenZipArchive(File.OpenRead("archive.7z")))
{
archive.ExtractToDirectory("C:\\extracted");
}
Osservazioni
Questo costruttore non decomprime alcuna voce. Vedi il metodo Aspose.Zip.SevenZip.SevenZipArchive.ExtractToDirectory(System.String,System.String) per la decompressione.
Eccezioni
sourceStream
non è cercabile.
sourceStream
è nullo.
L’archivio contiene più di un coder. Attualmente è supportata solo la compressione LZMA.
SevenZipArchive(string, string)
Inizializza una nuova istanza della classe Aspose.Zip.SevenZip.SevenZipArchive e compone un elenco di voci che possono essere estratte dall’archivio.
public SevenZipArchive(string path, string password = null)
Parametri
path
string
Il percorso completamente qualificato o relativo al file di archivio.
password
string
Password opzionale per la decrittazione. Se i nomi dei file sono crittografati, deve essere presente.
Esempi
using (SevenZipArchive archive = new SevenZipArchive("archive.7z"))
{
archive.ExtractToDirectory("C:\\extracted");
}
Osservazioni
Questo costruttore non decomprime alcuna voce. Vedi il metodo Aspose.Zip.SevenZip.SevenZipArchive.ExtractToDirectory(System.String,System.String) per la decompressione.
Eccezioni
path
è nullo.
Il chiamante non ha il permesso richiesto per accedere.
Il path
è vuoto, contiene solo spazi bianchi o contiene caratteri non validi.
Accesso al file path
negato.
Il path
, il nome del file o entrambi superano la lunghezza massima definita dal sistema. Ad esempio, sulle piattaforme basate su Windows, i percorsi devono essere inferiori a 248 caratteri e i nomi dei file devono essere inferiori a 260 caratteri.
Il file in path
contiene un due punti (:) nel mezzo della stringa.
Il file non è stato trovato.
Il percorso specificato non è valido, ad esempio si trova su un’unità non mappata.
Il file è già aperto.
SevenZipArchive(string[], string)
Inizializza una nuova istanza della classe Aspose.Zip.SevenZip.SevenZipArchive da un archivio 7z multi-volume e compone un elenco di voci che possono essere estratte dall’archivio.
public SevenZipArchive(string[] parts, string password = null)
Parametri
parts
string[]
Percorsi a ciascun segmento dell’archivio 7z multi-volume rispettando l’ordine.
password
string
Password opzionale per la decrittazione. Se i nomi dei file sono crittografati, deve essere presente.
Esempi
using (SevenZipArchive archive = new SevenZipArchive(new string[] { "multi.7z.001", "multi.7z.002", "multi.7z.003" }))
{
archive.ExtractToDirectory("C:\\extracted");
}
Eccezioni
parts
è nullo.
parts
non ha voci.
Il chiamante non ha il permesso richiesto per accedere.
Il percorso di un file è vuoto, contiene solo spazi bianchi o contiene caratteri non validi.
Accesso a un file negato.
Il percorso specificato per una parte, il nome del file o entrambi superano la lunghezza massima definita dal sistema. Ad esempio, sulle piattaforme basate su Windows, i percorsi devono essere inferiori a 248 caratteri e i nomi dei file devono essere inferiori a 260 caratteri.
Il file nel percorso contiene un due punti (:) nel mezzo della stringa.
Proprietà
Entries
Ottiene le voci di tipo Aspose.Zip.SevenZip.SevenZipArchiveEntry che costituiscono l’archivio.
public ReadOnlyCollection<sevenziparchiveentry> Entries { get; }
Valore della Proprietà
ReadOnlyCollection<SevenZipArchiveEntry>
NewEntrySettings
Impostazioni di compressione e crittografia utilizzate per i nuovi elementi Aspose.Zip.SevenZip.SevenZipArchiveEntry aggiunti.
public SevenZipEntrySettings NewEntrySettings { get; }
Valore della Proprietà
Metodi
CreateEntries(DirectoryInfo, bool)
Aggiunge all’archivio tutti i file e le directory ricorsivamente nella directory fornita.
public SevenZipArchive CreateEntries(DirectoryInfo directory, bool includeRootDirectory = true)
Parametri
directory
DirectoryInfo
Directory da comprimere.
includeRootDirectory
bool
Indica se includere o meno la directory radice stessa.
Restituisce
L’archivio con voci composte.
Esempi
using (SevenZipArchive archive = new SevenZipArchive())
{
DirectoryInfo folder = new DirectoryInfo("C:\\folder");
archive.CreateEntries(folder);
archive.Save("folder.7z");
}
Eccezioni
Il percorso per directory
non è valido, ad esempio si trova su un’unità non mappata.
Il chiamante non ha il permesso richiesto per accedere a directory
.
CreateEntries(string, bool)
Aggiunge all’archivio tutti i file e le directory ricorsivamente nella directory fornita.
public SevenZipArchive CreateEntries(string sourceDirectory, bool includeRootDirectory = true)
Parametri
sourceDirectory
string
Directory da comprimere.
includeRootDirectory
bool
Indica se includere o meno la directory radice stessa.
Restituisce
L’archivio con voci composte.
Esempi
Compone un archivio 7z con compressione LZMA2.
using (SevenZipArchive archive = new SevenZipArchive(new SevenZipEntrySettings(new SevenZipLZMACompressionSettings())))
{
archive.CreateEntries("C:\\folder");
archive.Save("folder.7z");
}
CreateEntry(string, FileInfo, bool, SevenZipEntrySettings)
Crea una singola voce all’interno dell’archivio.
public SevenZipArchiveEntry CreateEntry(string name, FileInfo fileInfo, bool openImmediately = false, SevenZipEntrySettings newEntrySettings = null)
Parametri
name
string
Il nome della voce.
fileInfo
FileInfo
I metadati del file da comprimere.
openImmediately
bool
Vero se aprire il file immediatamente, altrimenti aprire il file al salvataggio dell’archivio.
newEntrySettings
SevenZipEntrySettings
Impostazioni di compressione e crittografia utilizzate per l’elemento Aspose.Zip.SevenZip.SevenZipArchiveEntry aggiunto.
Restituisce
Istanza di voce Seven Zip.
Esempi
Compone un archivio con voci crittografate con password diverse ciascuna.
using (FileStream sevenZipFile = File.Open("archive.7z", FileMode.Create))
{
FileInfo fi1 = new FileInfo("data1.bin");
FileInfo fi2 = new FileInfo("data2.bin");
FileInfo fi3 = new FileInfo("data3.bin");
using (var archive = new SevenZipArchive())
{
archive.CreateEntry("entry1.bin", fi1, false, new SevenZipEntrySettings(new SevenZipStoreCompressionSettings(), new SevenZipAESEncryptionSettings("test1")));
archive.CreateEntry("entry2.bin", fi2, false, new SevenZipEntrySettings(new SevenZipStoreCompressionSettings(), new SevenZipAESEncryptionSettings("test2")));
archive.CreateEntry("entry3.bin", fi3, false, new SevenZipEntrySettings(new SevenZipStoreCompressionSettings(), new SevenZipAESEncryptionSettings("test3")));
archive.Save(sevenZipFile);
}
}
Osservazioni
Il nome della voce è impostato esclusivamente all'interno del parametro name
. Il nome del file fornito nel parametro fileInfo
non influisce sul nome della voce.
Se il file viene aperto immediatamente con il parametro openImmediately
, diventa bloccato fino a quando l'archivio non viene salvato.
Eccezioni
fileInfo
è di sola lettura o è una directory.
Il percorso specificato non è valido, ad esempio si trova su un’unità non mappata.
Il file è già aperto.
CreateEntry(string, Stream, SevenZipEntrySettings, FileSystemInfo)
Crea una singola voce all’interno dell’archivio.
public SevenZipArchiveEntry CreateEntry(string name, Stream source, SevenZipEntrySettings newEntrySettings, FileSystemInfo fileInfo)
Parametri
name
string
Il nome della voce.
source
Stream
Il flusso di input per la voce.
newEntrySettings
SevenZipEntrySettings
Impostazioni di compressione e crittografia utilizzate per l’elemento Aspose.Zip.SevenZip.SevenZipArchiveEntry aggiunto.
fileInfo
FileSystemInfo
I metadati del file o della cartella da comprimere.
Restituisce
Istanza di voce SevenZip.
Esempi
Compone un archivio con una voce crittografata compressa con LZMA2.
using (FileStream sevenZipFile = File.Open("archive.7z", FileMode.Create))
{
using (var archive = new SevenZipArchive())
{
archive.CreateEntry("entry1.bin", new MemoryStream(new byte[] {0x00, 0xFF}), new SevenZipEntrySettings(new SevenZipLZMA2CompressionSettings(), new SevenZipAESEncryptionSettings("test1")), new FileInfo("data1.bin"));
archive.Save(sevenZipFile);
}
}
Osservazioni
Il nome della voce è impostato esclusivamente all'interno del parametro name
. Il nome del file fornito nel parametro fileInfo
non influisce sul nome della voce.
fileInfo
può riferirsi a System.IO.DirectoryInfo se la voce è una directory.
Eccezioni
Entrambi source
e fileInfo
sono null o source
è null e fileInfo
rappresenta una directory.
CreateEntry(string, Stream, SevenZipEntrySettings)
Crea una singola voce all’interno dell’archivio.
public SevenZipArchiveEntry CreateEntry(string name, Stream source, SevenZipEntrySettings newEntrySettings = null)
Parametri
name
string
Il nome della voce.
source
Stream
Il flusso di input per la voce.
newEntrySettings
SevenZipEntrySettings
Impostazioni di compressione e crittografia utilizzate per l’elemento Aspose.Zip.SevenZip.SevenZipArchiveEntry aggiunto.
Restituisce
Istanza di voce Zip.
Esempi
Compone un archivio 7z con compressione LZMA2 e crittografia di tutte le voci.
using (var archive = new SevenZipArchive(new SevenZipEntrySettings(new SevenZipLZMA2CompressionSettings(), new SevenZipAESEncryptionSettings("p@s$"))))
{
archive.CreateEntry("data.bin", new MemoryStream(new byte[] {0x00, 0xFF} ));
archive.Save("archive.7z");
}
CreateEntry(string, string, bool, SevenZipEntrySettings)
Crea una singola voce all’interno dell’archivio.
public SevenZipArchiveEntry CreateEntry(string name, string path, bool openImmediately = false, SevenZipEntrySettings newEntrySettings = null)
Parametri
name
string
Il nome della voce.
path
string
Il nome completamente qualificato del nuovo file, o il nome del file relativo da comprimere.
openImmediately
bool
Vero se aprire il file immediatamente, altrimenti aprire il file al salvataggio dell’archivio.
newEntrySettings
SevenZipEntrySettings
Impostazioni di compressione e crittografia utilizzate per l’elemento Aspose.Zip.SevenZip.SevenZipArchiveEntry aggiunto.
Restituisce
Istanza di voce Zip.
Esempi
using (FileStream sevenZipFile = File.Open("archive.7z", FileMode.Create))
{
using (var archive = new SevenZipArchive(new SevenZipEntrySettings(new SevenZipLZMA2CompressionSettings())))
{
archive.CreateEntry("data.bin", "file.dat");
archive.Save(sevenZipFile);
}
}
Osservazioni
Il nome della voce è impostato esclusivamente all'interno del parametro name
. Il nome del file fornito nel parametro path
non influisce sul nome della voce.
Se il file viene aperto immediatamente con il parametro openImmediately
, diventa bloccato fino a quando l'archivio non viene salvato.
Eccezioni
path
è nullo.
Il chiamante non ha il permesso richiesto per accedere.
Il path
è vuoto, contiene solo spazi bianchi o contiene caratteri non validi.
Accesso al file path
negato.
Il path
, il nome del file, o entrambi superano la lunghezza massima definita dal sistema. Ad esempio, sulle piattaforme basate su Windows, i percorsi devono essere inferiori a 248 caratteri e i nomi dei file devono essere inferiori a 260 caratteri.
Il file in path
contiene un due punti (:) nel mezzo della stringa.
Dispose()
Esegue operazioni definite dall’applicazione associate alla liberazione, rilascio o reimpostazione delle risorse non gestite.
public void Dispose()
Dispose(bool)
Esegue operazioni definite dall’applicazione associate alla liberazione, rilascio o reimpostazione delle risorse non gestite.
protected virtual void Dispose(bool disposing)
Parametri
disposing
bool
Se le risorse gestite devono essere liberate.
ExtractToDirectory(string, string)
Estrae tutti i file nell’archivio nella directory fornita.
public void ExtractToDirectory(string destinationDirectory, string password = null)
Parametri
destinationDirectory
string
Il percorso della directory in cui inserire i file estratti.
password
string
Password opzionale per la decrittazione del contenuto.
Esempi
using (var archive = new SevenZipArchive("archive.7z"))
{
archive.ExtractToDirectory("C:\\extracted");
}
Osservazioni
Se la directory non esiste, verrà creata.
password
viene utilizzata solo per la decrittazione del contenuto. Se i nomi dei file sono crittografati, fornire la password nel costruttore Aspose.Zip.SevenZip.SevenZipArchive.#ctor(System.String,System.String) o Aspose.Zip.SevenZip.SevenZipArchive.#ctor(System.IO.Stream,System.String).
Eccezioni
destinationDirectory
è nullo.
Il percorso specificato, il nome del file, o entrambi superano la lunghezza massima definita dal sistema. Ad esempio, sulle piattaforme basate su Windows, i percorsi devono essere inferiori a 248 caratteri e i nomi dei file devono essere inferiori a 260 caratteri.
Il chiamante non ha il permesso richiesto per accedere alla directory esistente.
Se la directory non esiste, il percorso contiene un carattere due punti (:) che non fa parte di un’etichetta di unità (“C:").
destinationDirectory
è una stringa di lunghezza zero, contiene solo spazi bianchi o contiene uno o più caratteri non validi. Puoi interrogare i caratteri non validi utilizzando il metodo System.IO.Path.GetInvalidPathChars. -o- il percorso è prefissato con, o contiene, solo un carattere due punti (:).
La directory specificata dal percorso è un file. -o- Il nome della rete non è noto.
L’archivio è corrotto.
Save(Stream)
Salva l’archivio 7z nel flusso fornito.
public void Save(Stream output)
Parametri
output
Stream
Flusso di destinazione.
Esempi
using (FileStream sevenZipFile = File.Open("archive.7z", FileMode.Create))
{
using (FileStream source = File.Open("data.bin", FileMode.Open, FileAccess.Read))
{
using (var archive = new SevenZipArchive())
{
archive.CreateEntry("data", source);
archive.Save(sevenZipFile);
}
}
}
Osservazioni
output
deve essere cercabile.
Eccezioni
output
non supporta la ricerca.
output
è nullo.
Il codificatore non è riuscito a comprimere i dati.
Save(string)
Salva l’archivio nel file di destinazione fornito.
public void Save(string destinationFileName)
Parametri
destinationFileName
string
Il percorso dell’archivio da creare. Se il nome del file specificato punta a un file esistente, verrà sovrascritto.
Esempi
using (FileStream source = File.Open("data.bin", FileMode.Open, FileAccess.Read))
{
using (var archive = new SevenZipArchive(new SevenZipEntrySettings(new SevenZipLZMACompressionSettings())))
{
archive.CreateEntry("data", source);
archive.Save("archive.7z");
}
}
Osservazioni
È possibile salvare un archivio nello stesso percorso da cui è stato caricato. Tuttavia, questo non è raccomandato perché questo approccio utilizza la copia in un file temporaneo.
Eccezioni
destinationFileName
è nullo.
Il chiamante non ha il permesso richiesto per accedere.
Il destinationFileName
è vuoto, contiene solo spazi bianchi o contiene caratteri non validi.
Accesso al file destinationFileName
negato.
Il destinationFileName
, il nome del file, o entrambi superano la lunghezza massima definita dal sistema. Ad esempio, sulle piattaforme basate su Windows, i percorsi devono essere inferiori a 248 caratteri e i nomi dei file devono essere inferiori a 260 caratteri.
Il file in destinationFileName
contiene un due punti (:) nel mezzo della stringa.
SaveSplit(string, SplitSevenZipArchiveSaveOptions)
Salva l’archivio multi-volume nella directory di destinazione fornita.
public void SaveSplit(string destinationDirectory, SplitSevenZipArchiveSaveOptions options)
Parametri
destinationDirectory
string
Il percorso della directory in cui devono essere creati i segmenti dell’archivio.
options
SplitSevenZipArchiveSaveOptions
Opzioni per il salvataggio dell’archivio, incluso il nome del file.
Esempi
using (SevenZipArchive archive = new SevenZipArchive())
{
archive.CreateEntry("entry.bin", "data.bin");
archive.SaveSplit(@"C:\Folder", new SplitSevenZipArchiveSaveOptions("volume", 65536));
}
Osservazioni
Questo metodo compone diversi (n
) file filename.7z.001, filename.7z.002, ..., filename.7z.(n).
Non è possibile rendere un archivio esistente multi-volume.
Eccezioni
Questo archivio è stato aperto da una sorgente esistente.
destinationDirectory
è nullo.
Il chiamante non ha il permesso richiesto per accedere alla directory.
destinationDirectory
contiene caratteri non validi come “, >, <, o |.
Il percorso specificato supera la lunghezza massima definita dal sistema.