Trabajar con archivos 7z

**Visión general

7-Zip es un archivador de ficheros con un alto ratio de compresión. Aspose.ZIP API permite trabajar con la creación y gestión de archivos 7-Zip en sus aplicaciones sin necesidad de otras aplicaciones de terceros. La API Aspose.ZIP proporciona la clase SevenZipArchive para trabajar con archivos 7-Zip. Esta clase proporciona varios métodos para realizar operaciones con archivos comprimidos. La API proporciona la clase SevenZipArchiveEntry para representar un único fichero dentro del archivo 7z.

Crear una Entrada Única 7-Zip

El siguiente ejemplo de código demuestra cómo crear una entrada 7-Zip utilizando la instancia SevenZipArchive.

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

Crear entradas de archivo 7-Zip

La clase SevenZipArchive proporciona métodos createEntries para añadir archivos y directorios recursivamente en el directorio dado. El siguiente ejemplo de código demuestra cómo crear entradas de archivo 7-Zip.

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

Configuración de cifrado de SevenZip

La API de Aspose.ZIP proporciona la clase SevenZipAESEncryptionSettings que proporciona la configuración para el cifrado o descifrado AES de archivos 7z. El siguiente ejemplo de código muestra cómo proporcionar la configuración de cifrado 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}

El AES-256 es el único método de cifrado posible para el archivo 7z.

Archivo 7-Zip con compresión LZMA

El siguiente ejemplo de código demuestra cómo crear un archivo 7z con compresión LZMA y cifrado AES.

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

De forma similar, puedes componer un archivo 7z con los métodos de compresión BZip2, PPMd y LZMA2, o almacenar ficheros sin compresión.

Establecimiento de una contraseña diferente para las entradas

El siguiente ejemplo de código demuestra cómo crear un archivo con entradas cifradas con contraseñas diferentes para cada entrada.

 1try (FileOutputStream sieteZipFile = new FileOutputStream("archivo.7z")) {
 2    Archivo fi1 = new Archivo("datos1.bin");
 3    Archivo fi2 = new File("datos2.bin");
 4    Archivo fi3 = nuevo Archivo("datos3.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}

Extracción de archivos 7z

Ahora Aspose.ZIP puede extraer archivos comprimidos LZMA, LZMA2, BZip2 y PPMd.

El siguiente ejemplo de código demuestra cómo extraer un archivo 7z a un directorio.

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

Subscribe to Aspose Product Updates

Get monthly newsletters & offers directly delivered to your mailbox.