Travailler avec des 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 travailler 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éer une entrée unique 7-Zip

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

1try (FileOutputStream sevenZipFile = new FileOutputStream("archive.7z")) {
2    try (SevenZipArchive archive = new SevenZipArchive()) {
3        archive.createEntry("data.bin", "file.dat") ;
4        archive.save(sevenZipFile) ;
5    }
6} catch (IOException ex) {
7}

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

La classe SevenZipArchive propose des méthodes de création d’entrées (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’archives 7-Zip.

1try (SevenZipArchive archive = new SevenZipArchive()) {
2    archive.createEntries("dataDir") ;
3    archive.save("SevenZip.7z") ;
4}

Paramètres de cryptage de SevenZip

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

1try (SevenZipArchive archive = new SevenZipArchive(new SevenZipEntrySettings(null, new SevenZipAESEncryptionSettings("p@s$")))) {
2    archive.createEntry("data.bin", new ByteArrayInputStream(new byte[] {0x00, (byte)0xFF} )) ;
3    archive.save("archive.7z") ;
4}

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 la compression LZMA et le cryptage AES.

 1try (FileOutputStream sevenZipFile = new FileOutputStream("archive.7z")) {
 2    try (SevenZipArchive archive = new SevenZipArchive()) {
 3        archive.createEntry("entry1.bin",
 4                new ByteArrayInputStream(new byte[] {0x00, (byte)0xFF}),
 5                new SevenZipEntrySettings(new SevenZipLZMACompressionSettings(),
 6                        new SevenZipAESEncryptionSettings("test1")),
 7                new File("data1.bin")) ;
 8        archive.save(sevenZipFile) ;
 9    }
10} catch (IOException ex) {
11}

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.

Configuration 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 cryptées avec des mots de passe différents pour chaque entrée.

 1try (FileOutputStream sevenZipFile = new FileOutputStream("archive.7z")) {
 2    Fichier fi1 = nouveau Fichier("data1.bin") ;
 3    Fichier fi2 = nouveau fichier ("data2.bin") ;
 4    Fichier fi3 = nouveau fichier ("data3.bin") ;
 5
 6    try (SevenZipArchive archive = new SevenZipArchive()) {
 7        archive.createEntry("entry1.bin", fi1, false,
 8                new SevenZipEntrySettings(new SevenZipStoreCompressionSettings(),
 9                        new SevenZipAESEncryptionSettings("test1")));
10        archive.createEntry("entry2.bin", fi2, false,
11                new SevenZipEntrySettings(new SevenZipStoreCompressionSettings(),
12                        new SevenZipAESEncryptionSettings("test2")));
13        archive.createEntry("entry3.bin", fi3, false,
14                new SevenZipEntrySettings(new SevenZipStoreCompressionSettings(),
15                        new SevenZipAESEncryptionSettings("test3")));
16        archive.save(sevenZipFile);
17    }
18} catch (IOException ex) {
19}

Extraction d’archives 7z

Aspose.ZIP peut désormais extraire des archives compressées LZMA, LZMA2, BZip2 et PPMd.

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

1try (SevenZipArchive archive = new SevenZipArchive("archive.7z")) {
2    archive.extractToDirectory("ExtractionFolder") ;
3}

Subscribe to Aspose Product Updates

Get monthly newsletters & offers directly delivered to your mailbox.