Travailler avec les archives 7z

Aperçu

7-Zip est un archiveur de fichiers avec un taux de compression élevé. L’API Aspose.ZIP permet de créer et de gérer des archives 7-Zip dans vos applications sans avoir besoin d’autres applications tierces. L’API Aspose.ZIP fournit la classe  SevenZipArchive pour fonctionner avec les archives 7-Zip. Cette classe fournit diverses méthodes pour effectuer des opérations sur les archives. L’API fournit la classe  SevenZipArchiveEntry  pour représenter un seul fichier dans l’archive 7z.

Créez une entrée unique 7-Zip

L’exemple de code suivant montre comment créer une entrée 7-Zip à l’aide de l’instance SevenZipArchive.

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

Créer des entrées d’archive 7-Zip

La classe SevenZipArchive fournit des méthodes CreateEntries pour ajouter des fichiers et des répertoires de manière récursive dans le répertoire donné. L’exemple de code suivant montre comment créer des entrées d’archive 7-Zip.

1    using (SevenZipArchive archive = new SevenZipArchive())
2    {
3        archive.CreateEntries(dataDir);
4        archive.Save("SevenZip.7z");
5    }

Paramètres de cryptage 7-Zip

L’API Aspose.ZIP fournit la classe SevenZipAESEncryptionSettings qui fournit des paramètres de chiffrement ou de déchiffrement AES pour les archives 7z. L’exemple de code suivant montre comment fournir les paramètres de chiffrement AES.

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

L’AES-256 est la seule méthode de cryptage possible pour l’archive 7z.

Archive 7-Zip avec compression LZMA

L’exemple de code suivant montre comment créer une archive 7z avec compression LZMA et cryptage AES.

Étapes : Créer une archive 7z avec compression LZMA et cryptage AES via C#

  1. Ouvrez un flux de fichiers pour l’archive 7z de sortie à l’aide de FileMode.Create.
  2. Créez une instance de la classe SevenZipArchive.
  3. Utilisez la méthode CreateEntry pour ajouter une entrée à l’archive, en spécifiant :
    • Le fichier à compresser.
    • Paramètres de compression LZMA utilisant SevenZipLZMACompressionSettings.
    • Paramètres de cryptage AES à l’aide de SevenZipAESEncryptionSettings (avec un mot de passe).
  4. Enregistrez l’archive à l’aide de la méthode Save pour écrire les données compressées et cryptées dans le fichier.
 1    using (FileStream sevenZipFile = File.Open("archive.7z", FileMode.Create))
 2    {
 3        using (var archive = new SevenZipArchive())
 4        {
 5            archive.CreateEntry("entry1.bin", 
 6                new MemoryStream(new byte[] { 0x00, 0xFF }), 
 7                new SevenZipEntrySettings(new SevenZipLZMACompressionSettings(), 
 8                new SevenZipAESEncryptionSettings("test1")), 
 9                new FileInfo("data1.bin"));
10            archive.Save(sevenZipFile);
11        }
12    }

De même, vous pouvez composer une archive 7z avec les méthodes de compression BZip2, PPMd et LZMA2, ou stocker des fichiers sans compression.

Définition d’un mot de passe différent pour les entrées

L’exemple de code suivant montre comment créer une archive avec des entrées chiffrées avec des mots de passe différents pour chaque entrée.

Étapes : Créer une archive 7z avec compression LZMA et cryptage AES via C#

  1. Ouvrez un flux de fichiers pour créer l’archive 7z à l’aide de FileMode.Create.
  2. Préparez les fichiers (objets FileInfo) que vous souhaitez ajouter en tant qu’entrées à l’archive.
  3. Créez une instance de la classe SevenZipArchive.
  4. Pour chaque entrée, utilisez la méthode CreateEntry pour ajouter le fichier à l’archive :
    • Spécifiez la méthode de compression (dans ce cas, SevenZipStoreCompressionSettings).
    • Définissez un mot de passe différent pour chaque entrée à l’aide de SevenZipAESEncryptionSettings.
  5. Enregistrez l’archive à l’aide de la méthode Save pour écrire les entrées cryptées dans le fichier.
 1    using (FileStream sevenZipFile = File.Open("archive.7z", FileMode.Create))
 2    {
 3        FileInfo fi1 = new FileInfo("data1.bin");
 4        FileInfo fi2 = new FileInfo("data2.bin");
 5        FileInfo fi3 = new FileInfo("data3.bin");
 6        using (var archive = new SevenZipArchive())
 7        {
 8            archive.CreateEntry("entry1.bin", fi1, false, new SevenZipEntrySettings(new SevenZipStoreCompressionSettings(), new SevenZipAESEncryptionSettings("test1")));
 9            archive.CreateEntry("entry2.bin", fi2, false, new SevenZipEntrySettings(new SevenZipStoreCompressionSettings(), new SevenZipAESEncryptionSettings("test2")));
10            archive.CreateEntry("entry3.bin", fi3, false, new SevenZipEntrySettings(new SevenZipStoreCompressionSettings(), new SevenZipAESEncryptionSettings("test3")));
11            archive.Save(sevenZipFile);
12        }
13    }

Extraction des archives 7z

Now Aspose.ZIP can extract LZMA, LZMA2, BZip2 and PPMd compressed archives.

L’exemple de code suivant montre comment extraire l’archive 7z dans le répertoire.

1    using (SevenZipArchive archive = new SevenZipArchive("archive.7z"))
2    {
3        archive.ExtractToDirectory("ExtractionFolder");
4    }

Subscribe to Aspose Product Updates

Get monthly newsletters & offers directly delivered to your mailbox.