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.