Crea archivio 7Zip in C#

Nel post precedente, ho discusso diversi modi per creare archivi ZIP usando C#. L’articolo spiegava anche come creare archivi ZIP crittografati e protetti da password. Oltre al formato ZIP, ci sono altri formati di archivio comunemente usati come 7z, tar, RAR, ecc. Tra questi, il formato di archivio 7z si basa sull’architettura open-source e viene utilizzato per comprimere file e cartelle con un rapporto di compressione elevato. Supporta anche la crittografia AES a 256 bit e consente anche di crittografare i nomi dei file. In questo articolo dimostrerò come creare archivi 7z (7-Zip) a livello di codice usando C#.

Questo articolo è suddiviso nelle seguenti sezioni:

Tutti i passaggi e gli esempi di codice in questo articolo sono basati su Aspose.ZIP for .NET. Pertanto, assicurati di aver installato l’API utilizzando uno dei seguenti metodi:

Crea un archivio 7z (7-Zip) usando C#

Potrebbero esserci due possibili scenari di compressione dei file in un archivio 7z. O hai solo un singolo file o potrebbero esserci molti file da comprimere. Puoi gestire entrambi gli scenari in modo esplicito.

Crea archivio 7z con voce singola

Di seguito sono riportati i passaggi per creare un archivio 7z con una singola voce.

L’esempio di codice seguente mostra come creare un archivio 7z (7-Zip) usando C#.

using (FileStream sevenZipFile = File.Open("archive.7z", FileMode.Create))
{
    using (var archive = new SevenZipArchive())
    {
        archive.CreateEntry("data.bin", "file.dat");
        archive.Save(sevenZipFile);
    }
}

Crea un archivio 7z con più voci

In questo caso, puoi mettere i file in una cartella e passare il percorso della cartella al metodo SevenZipArchive.CreateEntries(). Di seguito sono riportati i passaggi per aggiungere più voci di file a un archivio 7z.

L’esempio di codice seguente mostra come creare un archivio 7z con più voci usando C#.

using (SevenZipArchive archive = new SevenZipArchive())
{
    archive.CreateEntries(dataDir);
    archive.Save("SevenZip.7z");
}

Crea un archivio 7z crittografato AES utilizzando C#

Il formato 7z supporta la crittografia AES per proteggere i file. Per crittografare un file 7z, viene utilizzata la classe SevenZipAESEncryptionSettings. L’esempio di codice seguente mostra come creare un archivio 7z crittografato AES usando C#.

using (var archive = new SevenZipArchive(new SevenZipEntrySettings(null, new SevenZipAESEncryptionSettings("p@s$"))))
{
    archive.CreateEntry("data.bin", new MemoryStream(new byte[] { 0x00, 0xFF }));
    archive.Save("archive.7z");
}

Imposta password diverse per voci 7z utilizzando C#

Il formato 7z consente inoltre di specificare una password diversa per ogni voce di file. Ad esempio, se intendi comprimere due file in un archivio 7z, puoi specificare una password diversa per ciascun file. Di seguito sono riportati i passaggi per impostare password diverse per le voci 7z.

L’esempio di codice seguente mostra come impostare una password per ogni voce in un archivio 7z.

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);
    }
}

Conclusione

In questo articolo abbiamo imparato come creare archivi 7z a livello di codice usando C#. Inoltre, abbiamo visto come creare file 7z crittografati AES e impostare una password per ogni voce di file. Puoi saperne di più sulla compressione/decompressione dei file da qui.

articoli Correlati