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#
- Abra una secuencia de archivos para el archivo 7z de salida usando FileMode.Create.
- Cree una instancia de la clase SevenZipArchive.
- 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).
- 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#
- Abra una secuencia de archivos para crear el archivo 7z usando FileMode.Create.
- Prepare los archivos (objetos FileInfo) que desea agregar como entradas al archivo.
- Cree una instancia de la clase SevenZipArchive.
- 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.
- 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 }