Class SevenZipArchive

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à

objectSevenZipArchive

Implementa

IArchive, IDisposable

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

ArgumentException

sourceStream non è cercabile.

ArgumentNullException

sourceStream è nullo.

NotImplementedException

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

ArgumentNullException

path è nullo.

SecurityException

Il chiamante non ha il permesso richiesto per accedere.

ArgumentException

Il path è vuoto, contiene solo spazi bianchi o contiene caratteri non validi.

UnauthorizedAccessException

Accesso al file path negato.

PathTooLongException

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.

NotSupportedException

Il file in path contiene un due punti (:) nel mezzo della stringa.

FileNotFoundException

Il file non è stato trovato.

DirectoryNotFoundException

Il percorso specificato non è valido, ad esempio si trova su un’unità non mappata.

IOException

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

ArgumentNullException

parts è nullo.

ArgumentException

parts non ha voci.

SecurityException

Il chiamante non ha il permesso richiesto per accedere.

ArgumentException

Il percorso di un file è vuoto, contiene solo spazi bianchi o contiene caratteri non validi.

UnauthorizedAccessException

Accesso a un file negato.

PathTooLongException

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.

NotSupportedException

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&gt;

NewEntrySettings

Impostazioni di compressione e crittografia utilizzate per i nuovi elementi Aspose.Zip.SevenZip.SevenZipArchiveEntry aggiunti.

public SevenZipEntrySettings NewEntrySettings { get; }

Valore della Proprietà

SevenZipEntrySettings

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

SevenZipArchive

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

DirectoryNotFoundException

Il percorso per directory non è valido, ad esempio si trova su un’unità non mappata.

SecurityException

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

SevenZipArchive

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

SevenZipArchiveEntry

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

UnauthorizedAccessException

fileInfo è di sola lettura o è una directory.

DirectoryNotFoundException

Il percorso specificato non è valido, ad esempio si trova su un’unità non mappata.

IOException

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

SevenZipArchiveEntry

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

InvalidOperationException

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

SevenZipArchiveEntry

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

SevenZipArchiveEntry

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

ArgumentNullException

path è nullo.

SecurityException

Il chiamante non ha il permesso richiesto per accedere.

ArgumentException

Il path è vuoto, contiene solo spazi bianchi o contiene caratteri non validi.

UnauthorizedAccessException

Accesso al file path negato.

PathTooLongException

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.

NotSupportedException

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

ArgumentNullException

destinationDirectory è nullo.

PathTooLongException

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.

SecurityException

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

NotSupportedException

Se la directory non esiste, il percorso contiene un carattere due punti (:) che non fa parte di un’etichetta di unità (“C:").

ArgumentException

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 (:).

IOException

La directory specificata dal percorso è un file. -o- Il nome della rete non è noto.

InvalidDataException

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

ArgumentException

output non supporta la ricerca.

ArgumentNullException

output è nullo.

InvalidOperationException

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

ArgumentNullException

destinationFileName è nullo.

SecurityException

Il chiamante non ha il permesso richiesto per accedere.

ArgumentException

Il destinationFileName è vuoto, contiene solo spazi bianchi o contiene caratteri non validi.

UnauthorizedAccessException

Accesso al file destinationFileName negato.

PathTooLongException

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.

NotSupportedException

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

InvalidOperationException

Questo archivio è stato aperto da una sorgente esistente.

ArgumentNullException

destinationDirectory è nullo.

SecurityException

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

ArgumentException

destinationDirectory contiene caratteri non validi come “, >, <, o |.

PathTooLongException

Il percorso specificato supera la lunghezza massima definita dal sistema.

 Italiano