Travailler avec les archives 7z
Aper�u
7-Zip est un archiveur de fichiers avec un taux de compression �lev�. L’API Aspose.ZIP permet de cr�er et de g�rer des archives 7-Zip dans vos applications sans avoir besoin d’autres applications tierces.�L’API Aspose.ZIP fournit la classe� SevenZipArchive�pour fonctionner avec les archives 7-Zip.�Cette classe fournit diverses m�thodes pour effectuer des op�rations sur les archives.�L’API fournit la classe� SevenZipArchiveEntry� pour repr�senter un seul fichier dans l’archive 7z.
Cr�ez une entr�e unique 7-Zip
L’exemple de code suivant montre comment cr�er une entr�e 7-Zip � l’aide de l’instance 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 }Cr�er des entr�es d’archive 7-Zip
La classe SevenZipArchive fournit des m�thodes CreateEntries pour ajouter des fichiers et des r�pertoires de mani�re r�cursive dans le r�pertoire donn�.�L’exemple de code suivant montre comment cr�er des entr�es d’archive 7-Zip.
1 using (SevenZipArchive archive = new SevenZipArchive())
2 {
3 archive.CreateEntries(dataDir);
4 archive.Save("SevenZip.7z");
5 }Param�tres de cryptage 7-Zip
L’API Aspose.ZIP fournit la classe SevenZipAESEncryptionSettings qui fournit des param�tres de chiffrement ou de d�chiffrement AES pour les archives 7z. L’exemple de code suivant montre comment fournir les param�tres de chiffrement 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 }L’AES-256 est la seule m�thode de cryptage possible pour l’archive 7z.
Archive 7-Zip avec compression LZMA
L’exemple de code suivant montre comment cr�er une archive 7z avec compression LZMA et cryptage AES.
�tapes�: Cr�er une archive 7z avec compression LZMA et cryptage AES via C#
- Ouvrez un flux de fichiers pour l’archive 7z de sortie � l’aide de FileMode.Create.
- Cr�ez une instance de la classe SevenZipArchive.
- Utilisez la m�thode CreateEntry pour ajouter une entr�e � l’archive, en sp�cifiant�:
- Le fichier � compresser.
- Param�tres de compression LZMA utilisant SevenZipLZMACompressionSettings.
- Param�tres de cryptage AES � l’aide de SevenZipAESEncryptionSettings (avec un mot de passe).
- Enregistrez l’archive � l’aide de la m�thode Save pour �crire les donn�es compress�es et crypt�es dans le fichier.
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 m�me, vous pouvez composer une archive 7z avec les m�thodes de compression BZip2, PPMd et LZMA2, ou stocker des fichiers sans compression.
D�finition d’un mot de passe diff�rent pour les entr�es
L’exemple de code suivant montre comment cr�er une archive avec des entr�es chiffr�es avec des mots de passe diff�rents pour chaque entr�e.
�tapes�: Cr�er une archive 7z avec compression LZMA et cryptage AES via C#
- Ouvrez un flux de fichiers pour cr�er l’archive 7z � l’aide de FileMode.Create.
- Pr�parez les fichiers (objets FileInfo) que vous souhaitez ajouter en tant qu’entr�es � l’archive.
- Cr�ez une instance de la classe SevenZipArchive.
- Pour chaque entr�e, utilisez la m�thode CreateEntry pour ajouter le fichier � l’archive�:
- Sp�cifiez la m�thode de compression (dans ce cas, SevenZipStoreCompressionSettings).
- D�finissez un mot de passe diff�rent pour chaque entr�e � l’aide de SevenZipAESEncryptionSettings.
- Enregistrez l’archive � l’aide de la m�thode Save pour �crire les entr�es crypt�es dans le fichier.
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 }Extraction des archives 7z
Now Aspose.ZIP can extract LZMA, LZMA2, BZip2 and PPMd compressed archives.
L’exemple de code suivant montre comment extraire l’archive 7z dans le r�pertoire.
1 using (SevenZipArchive archive = new SevenZipArchive("archive.7z"))
2 {
3 archive.ExtractToDirectory("ExtractionFolder");
4 }