Trabajar con archivos 7z

Descripci�n general

7-Zip es un archivador de archivos con una alta relaci�n de compresi�n. La API Aspose.ZIP le permite crear y administrar archivos 7-Zip en sus aplicaciones sin la 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 en archivos.�La API proporciona la clase� SevenZipArchiveEntry� para representar un �nico archivo dentro del archivo 7z.

Crea una entrada �nica con 7 cremalleras

El siguiente ejemplo de c�digo demuestra c�mo crear una entrada 7-Zip utilizando la instancia de 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    }

Crear entradas de archivo 7-Zip

La clase SevenZipArchive proporciona m�todos CreateEntries para agregar archivos y directorios de forma recursiva en el directorio dado.�El siguiente ejemplo de c�digo demuestra c�mo crear entradas de archivo 7-Zip.

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

Configuraci�n de cifrado 7-Zip

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

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.

Pasos: Crear un archivo 7z con compresi�n LZMA y cifrado AES mediante C#

  1. Abra una secuencia de archivos para el archivo 7z de salida usando FileMode.Create.
  2. Cree una instancia de la clase SevenZipArchive.
  3. Utilice el m�todo CreateEntry para agregar una entrada al archivo, especificando:
    • El archivo a comprimir.
    • Configuraci�n de compresi�n LZMA usando SevenZipLZMACompressionSettings.
    • Configuraci�n de cifrado AES mediante SevenZipAESEncryptionSettings (con contrase�a).
  4. Guarde el archivo utilizando el m�todo Guardar para escribir los datos comprimidos y cifrados en el archivo.
 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 manera similar, puede componer archivos 7z con el m�todo de compresi�n BZip2, PPMd y LZMA2, o almacenar archivos sin compresi�n.

Establecer una contrase�a diferente para las entradas

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

Pasos: Crear un archivo 7z con compresi�n LZMA y cifrado AES mediante C#

  1. Abra una secuencia de archivos para crear el archivo 7z usando FileMode.Create.
  2. Prepare los archivos (objetos FileInfo) que desea agregar como entradas al archivo.
  3. Cree una instancia de la clase SevenZipArchive.
  4. Para cada entrada, utilice el m�todo CreateEntry para agregar el archivo al archivo:
    • Especifique el m�todo de compresi�n (en este caso, SevenZipStoreCompressionSettings).
    • Establezca una contrase�a diferente para cada entrada usando SevenZipAESEncryptionSettings.
  5. Guarde el archivo utilizando el m�todo Guardar para escribir las entradas cifradas en el archivo.
 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    }

Extracci�n de archivos 7z

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

El siguiente ejemplo de c�digo demuestra c�mo extraer el archivo 7z al directorio.

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.