Informar del progreso de la compresi�n

Controlador de eventos de progreso

El proceso de compresi�n puede llevar mucho tiempo, especialmente si el tama�o de los datos es enorme. Para el archivo zip, hay un eventoCompressionProgressed que debe permanecer publicado. Este evento se basa en ProgressEventArgs que contiene el n�mero de bytes avanzados hasta el momento. As� es como podemos suscribirnos a este evento usando expresi�n lambda:

1   entrada.CompressionProgressed += (s, e) => { 
2      Console.WriteLine(string.Format("{0} bytes comprimidos", e.ProceededBytes)); 
3   };

Porcentaje de progreso del c�digo postal de informes

Cada vez que aparece el evento CompressionProgressed, dividimos el n�mero de ProceededBytes por la longitud del archivo original. As� encontramos la proporci�n de bytes comprimidos en este momento. Aqu� est� la muestra completa.

Pasos: Informe del porcentaje de progreso de Zip en C#

  1. Abra el archivo enorme.bin en modo lectura usando File.Open para prepararlo para la compresi�n.
  2. Inicialice una nueva instancia de la clase Archive, especificando PPMdCompressionSettings para la compresi�n.
  3. Cree una entrada de archivo para el archivo enorme.bin usando el m�todo CreateEntry, vincul�ndolo a la secuencia del archivo fuente.
  4. Adjunte un controlador de eventos al evento CompressionProgressed para monitorear el progreso de la compresi�n. Calcula el porcentaje del archivo comprimido hasta el momento.
  5. Dentro del controlador de eventos, actualice el porcentaje de compresi�n y mu�strelo en la consola cada vez que aumente el progreso.
  6. Una vez que se complete la compresi�n, guarde el archivo en el archivo zip especificado.
 1   usando (FileStream fuente = File.Open("huge.bin", FileMode.Open, FileAccess.Read))
 2   {
 3      usando (archivo var = nuevo archivo (nuevo ArchiveEntrySettings (nuevo PPMdCompressionSettings())))
 4      {
 5         Entrada ArchiveEntry = archive.CreateEntry("huge.bin", fuente);
 6         int porcentajeListo = 0;
 7         entrada.CompressionProgressed += (s, e) =>
 8               {
 9                  int porcentaje = (int)((100 * (long)e.ProceededBytes) / source.Length);
10                  si (porcentaje > porcentajeListo)                 
11                  {
12                        Console.WriteLine(string.Format("{0}% comprimido", porcentaje));
13                        porcentajeListo = porcentaje;
14                  }       
15               };
16         archivo.Guardar(zipFile);
17      }
18   }

Informe de porcentaje de progreso de 7z

Un enfoque similar es para el archivo 7z. Su entrada tiene su propio eventoCompressionProgressed

Pasos: Monitoreo del progreso de la compresi�n con LZMA2 en un archivo 7z en C#</ un>

  1. Abra el archivo fuente (huge.bin) en modo lectura.
  2. Cree un objeto SevenZipArchive utilizando la configuraci�n de compresi�n LZMA2.
  3. Agregue el archivo fuente al archivo como una entrada usando el m�todo CreateEntry.
  4. Suscr�base al evento CompressionProgressed para realizar un seguimiento y calcular el progreso de la compresi�n.
  5. Para cada actualizaci�n de progreso, calcule el porcentaje de compresi�n completada.
  6. Guarde el archivo en el destino especificado (zipFile).
Subscribe to Aspose Product Updates

Get monthly newsletters & offers directly delivered to your mailbox.