Composition parallèle des archives ZIP

Aperçu

L’API Aspose.ZIP offre la possibilité de composer des archives ZIP. Étant donné que les entrées d’une telle archive peuvent être compressées indépendamment, il est possible de paralléliser la création d’archives dans une certaine mesure.

ZIP multithread : explication

Utilisez ParallelOptions pour indiquer que l’archive doit être préparée avec plusieurs cœurs de processeur.

Le paramètre ParallelCompressInMemory indique la stratégie que nous choisissons pour effectuer plusieurs tâches. Voici trois options :

Nous vous encourageons à jouer avec différents modes de compression parallèle sur vos données typiques pour déterminer quels sont les meilleurs paramètres dans votre cas.

Comment créer une archive ZIP avec compression parallèle dans un exemple C#

Étapes : Créer une archive ZIP avec compression parallèle en C#

  1. Ouvrez un flux de fichiers (FileStream) dans FileMode.Create pour créer un nouveau fichier ZIP (archive.zip).
  2. Initialisez un nouvel objet Archive pour gérer les entrées ZIP.
  3. Utilisez la méthode CreateEntry pour ajouter plusieurs entrées, telles que “first.bin” et “last.bin”, en utilisant File.OpenRead pour lire à partir des fichiers source (data1.bin et dataN.bin).
  4. Configurez « ArchiveSaveOptions » avec « ParallelOptions », où « ParallelCompressInMemory » est défini sur « ParallelCompressionMode.Always », permettant une compression parallèle pour un archivage plus rapide.
  5. Enregistrez l’archive avec les options spécifiées en utilisant la méthode Save.
 1    using (FileStream zipFile = File.Open("archive.zip", FileMode.Create))
 2    {
 3        using (Archive archive = new Archive())
 4        {
 5            archive.CreateEntry("first.bin", File.OpenRead("data1.bin"));
 6            ...
 7            archive.CreateEntry("last.bin", File.OpenRead("dataN.bin"));
 8            archive.Save(zipFile, new ArchiveSaveOptions()
 9            {
10                ParallelOptions = new ParallelOptions() 
11                { ParallelCompressInMemory = ParallelCompressionMode.Always }
12            });
13        }
14    }
Subscribe to Aspose Product Updates

Get monthly newsletters & offers directly delivered to your mailbox.