Signaler la progression de la compression

Gestionnaire d’�v�nements de progression

Le processus de compression peut prendre beaucoup de temps, surtout si la taille des donn�es est �norme. Pour l’archive zip, il existe un �v�nement CompressionProgressed pour rester publi�. Cet �v�nement s’appuie sur ProgressEventArgs qui contient le nombre d’octets trait�s jusqu’� pr�sent. Voici comment nous pouvons nous abonner � cet �v�nement en utilisant lambda extression�:

1   Entry.CompressionProgressed += (s, e) => { 
2      Console.WriteLine(string.Format("{0} octets compress�s", e.ProceededBytes)); 
3   };

�Rapport du pourcentage de progression Zip�

Chaque fois que l’�v�nement CompressionProgressed se d�clenche, nous divisons le nombre ProceededBytes par la longueur du fichier d’origine. C’est ainsi que nous trouvons le ratio d’octets compress�s pour le moment. Voici l��chantillon complet.

�tapes�: Signaler le pourcentage de progression du zip en C#

  1. Ouvrez le fichier huge.bin en mode lecture � l’aide de File.Open pour le pr�parer � la compression.
  2. Initialisez une nouvelle instance de la classe Archive, en sp�cifiant PPMdCompressionSettings pour la compression.
  3. Cr�ez une entr�e d’archive pour le fichier huge.bin � l’aide de la m�thode CreateEntry, en la liant au flux du fichier source.
  4. Attachez un gestionnaire d’�v�nements � l’�v�nement CompressionProgressed pour surveiller la progression de la compression. Il calcule le pourcentage du fichier compress� jusqu’� pr�sent.
  5. Dans le gestionnaire d’�v�nements, mettez � jour le pourcentage de compression et affichez-le dans la console chaque fois que la progression augmente.
  6. Une fois la compression termin�e, enregistrez l’archive dans le fichier zip sp�cifi�.
 1   en utilisant (source FileStream = File.Open("huge.bin", FileMode.Open, FileAccess.Read))
 2   {
 3      en utilisant (var archive = new Archive (new ArchiveEntrySettings (new PPMdCompressionSettings())))
 4      {
 5         Entre ArchiveEntry = archive.CreateEntry("huge.bin", source);
 6         int pourcentagePrt = 0;
 7         entre.CompressionProgressed += (s, e) =>
 8               {
 9                  int percent = (int)((100 * (long)e.ProceededBytes) / source.Length);
10                  si (pourcentage > pourcentagePrt)                 
11                  {
12                        Console.WriteLine(string.Format("{0}% compress�", pourcentage));
13                        percentReady = pourcentage;
14                  }       
15               };
16         archive.Save(zipFile);
17      }
18   }

�D�claration du pourcentage de progression de 7�z�

Une approche similaire concerne les archives 7z. Son entr�e poss�de son propre �v�nement CompressionProgressed

�tapes�: Surveillance de la progression de la compression avec LZMA2 dans une archive 7z en C#</ une>

  1. Ouvrez le fichier source (huge.bin) en mode lecture.
  2. Cr�ez un objet SevenZipArchive � l’aide des param�tres de compression LZMA2.
  3. Ajoutez le fichier source � l’archive en tant qu’entr�e � l’aide de la m�thode CreateEntry.
  4. Abonnez-vous � l’�v�nement CompressionProgressed pour suivre et calculer la progression de la compression.
  5. Pour chaque mise � jour de progression, calculez le pourcentage de compression termin�.
  6. Enregistrez l’archive dans la destination sp�cifi�e (zipFile).
Subscribe to Aspose Product Updates

Get monthly newsletters & offers directly delivered to your mailbox.