Dossiers ZIP et décompressés dans .NET
Contents
[
Hide
Show
]L’API Aspose.ZIP vous permet de compresser et décompresser des fichiers sans vous soucier de la structure des fichiers sous-jacents. Cet article montre l’utilisation de la compression de fichiers uniques ou multiples.
Compression du répertoire
Compression du contenu du répertoire
Étapes : Compresser le contenu du répertoire dans des fichiers ZIP à l’aide de C#
- Définissez le répertoire contenant les fichiers à compresser.
- Ouvrez deux flux de fichiers pour les fichiers ZIP de sortie à l’aide de FileMode.Create.
- Créez une instance de la classe Archive.
- Utilisez la méthode CreateEntries pour ajouter tous les fichiers et dossiers du répertoire spécifié à l’archive.
- Enregistrez le contenu du répertoire compressé dans plusieurs fichiers ZIP à l’aide de la méthode Save.
1 // For complete examples and data files, please go to https://github.com/aspose-zip/Aspose.ZIP-for-.NET
2 string dataDir = RunExamples.GetDataDir_Data();
3
4 using (FileStream zipFile = File.Open(dataDir + "CompressDirectory_out.zip", FileMode.Create))
5 {
6 using (FileStream zipFile2 = File.Open(dataDir + "CompressDirectory2_out.zip", FileMode.Create))
7 {
8 using (Archive archive = new Archive())
9 {
10 DirectoryInfo corpus = new DirectoryInfo(dataDir + "CanterburyCorpus");
11 archive.CreateEntries(corpus);
12 archive.Save(zipFile);
13 archive.Save(zipFile2);
14 }
15 }
16 }
Extraction de l’archive de répertoire compressée
Étapes : Extraction d’une archive de répertoire compressée
- Ouvrez le flux de fichiers ZIP à l’aide de FileMode.Open.
- Créez une instance de la classe Archive en transmettant le flux du fichier ZIP.
- Extrayez le contenu de l’archive compressée dans un répertoire spécifié à l’aide de ExtractToDirectory.
1 // For complete examples and data files, please go to https://github.com/aspose-zip/Aspose.ZIP-for-.NET
2 using (FileStream zipFile = File.Open(dataDir + "CompressDirectory_out.zip", FileMode.Open))
3 {
4 using (var archive = new Archive(zipFile))
5 {
6 archive.ExtractToDirectory(dataDir + "DecompressFolder_out");
7 }
8 }
Compresser les fichiers par informations sur le fichier
Étapes : Compresser les fichiers par informations de fichier
- Ouvrez un flux de fichiers pour le fichier ZIP de sortie à l’aide de FileMode.Create.
- Créez des objets FileInfo pour les fichiers que vous souhaitez compresser.
- Créez une instance de la classe Archive.
- Utilisez la méthode CreateEntry pour ajouter chaque fichier à l’archive.
- Enregistrez l’archive à l’aide de la méthode Save, avec des options de sauvegarde facultatives telles que la définition de l’encodage.
1 // For complete examples and data files, please go to https://github.com/aspose-zip/Aspose.ZIP-for-.NET
2 using (FileStream zipFile = File.Open(dataDir + "CompressFilesByFileInfo_out.zip", FileMode.Create))
3 {
4 FileInfo fi1 = new FileInfo(dataDir + "alice29.txt");
5 FileInfo fi2 = new FileInfo(dataDir + "fields.c");
6
7 using (var archive = new Archive())
8 {
9 archive.CreateEntry("alice29.txt", fi1);
10 archive.CreateEntry("fields.c", fi2);
11 archive.Save(zipFile, new ArchiveSaveOptions() { Encoding = Encoding.ASCII });
12 }
13 }
Extraire les archives avec différentes archives d’entrée
Étapes : Extraire les archives avec une entrée différente Mots de passe
- Ouvrez le flux de fichiers ZIP à l’aide de FileMode.Open.
- Créez une instance de la classe Archive en transmettant le flux du fichier ZIP.
- Extrayez la première entrée de l’archive, en fournissant un mot de passe spécifique pour cette entrée à l’aide de la méthode Extract.
- Extrayez la deuxième entrée avec un mot de passe différent, en l’enregistrant dans un fichier de sortie distinct.
1 // For complete examples and data files, please go to https://github.com/aspose-zip/Aspose.ZIP-for-.NET
2 using (FileStream zipFile = File.Open(dataDir + "\\different_password.zip", FileMode.Open))
3 {
4 using (Archive archive = new Archive(zipFile))
5 {
6 archive.Entries[0].Extract(dataDir + "alice29_extracted_pass_out.txt", "first_pass");
7 archive.Entries[1].Extract(dataDir + "asyoulik_extracted_pass_out.txt", "second_pass");
8 }
9 }