Ver Mensaje Individual
  #3 (permalink)  
Antiguo 11/03/2017, 14:11
Cholo5247
 
Fecha de Ingreso: noviembre-2015
Mensajes: 6
Antigüedad: 8 años, 5 meses
Puntos: 1
Respuesta: ¿Como Extraer Archivo .zip con Barra de progreso?

Muchas Gracias por ayudar, pero tengo un problema a la hora de colocar el codigo.



Compo puedes observar me aparecen varios errorres y son como:
"Open no es un miembro de ZipFile"
"Length no es un miembro de ZipArchiveEntry"
"ExtracToFile no es un miembro de ZipArchiveEntry"
"Name no es un miembro de ZipArchiveEntry"

Los Imports que tengo son estos:


No se cual es el problema.
Gracias, y espero tu respuesta.

Cita:
Iniciado por Drako_18 Ver Mensaje
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!!!