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}