Ver Mensaje Individual
  #2 (permalink)  
Antiguo 11/03/2017, 12:12
Avatar de Drako_18
Drako_18
 
Fecha de Ingreso: mayo-2005
Ubicación: Madrid
Mensajes: 505
Antigüedad: 19 años
Puntos: 16
Respuesta: ¿Como Extraer Archivo .zip con Barra de progreso?

Buenas compañero,

Prueba esto... (lo he modificado, porque el código que tu pusiste no me funcionó muy bien..)
Código vb:
Ver original
  1. Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
  2.         Dim sZipAExtraer As String = "C:\temp\aaa.zip"
  3.         Dim sDirectorioExtraccion As String = "C:\temp\aaa"
  4.         Dim oZip As ZipArchive = ZipFile.Open(sZipAExtraer, ZipArchiveMode.Read)
  5.         Dim lSize As Long
  6.         Dim lInicial As Long
  7.         Dim lstEntradas As List(Of ZipArchiveEntry) = oZip.Entries.OrderBy(Function(x) x.Length).ToList()
  8.  
  9.         lstEntradas.ForEach(Sub(x)
  10.                                 lSize += x.Length
  11.                             End Sub)
  12.  
  13.         ProgressBar1.Minimum = 0
  14.         ProgressBar1.Maximum = lSize
  15.         ProgressBar1.Value = 0
  16.  
  17.         For Each ent As ZipArchiveEntry In lstEntradas
  18.             lInicial = (ent.Length * 10) / 100 '10%
  19.            ProgressBar1.Value += lInicial
  20.             ent.ExtractToFile(sDirectorioExtraccion & "/" & ent.Name, True)
  21.             ProgressBar1.Value += ent.Length - lInicial '100% del archivo
  22.        Next
  23.     End Sub

Te lo explico un poco...
1º) Ordeno la lista de entradas por tamaño (menor a mayor)
2º) Miro cuanto es el tamaño total (lSize)
3º) Recorro todas las entradas, de inicio, pongo un 10% del archivo como ya descomprimido, y una vez terminado, pongo el restante



Un saludo!!!
__________________
Rubén Espada
Desarrollador full stack .Net (Angular + JS + .Net Core)