Constancia

VB_CLS_ZIP

Jul 12th, 2015
363
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
VB.NET 5.40 KB | None | 0 0
  1. '****** HAY QUE REFERENCIAR [Ionic.Zip.dll]
  2. Imports Ionic.Zip
  3.  
  4.  
  5. Public Class ZIP
  6.  
  7.     Private obZIP As New ZipFile
  8.  
  9.     Public Sub New()
  10.  
  11.     End Sub
  12.  
  13.  
  14. #Region "PROPIEDADES"
  15.  
  16.     Private _Nombre As String
  17.     Public Property Nombre() As String
  18.         Get
  19.             Return _Nombre
  20.         End Get
  21.         Set(ByVal value As String)
  22.             _Nombre = value
  23.             If _Ruta <> "" Then _RutaFic = _Ruta & _Nombre
  24.             obZIP.Name = _Nombre
  25.         End Set
  26.     End Property
  27.  
  28.     Private _Ruta As String
  29.     Public Property Ruta() As String
  30.         Get
  31.             Return _Ruta
  32.         End Get
  33.         Set(ByVal value As String)
  34.             _Ruta = value
  35.             If _Nombre <> "" Then _RutaFic = _Ruta & _Nombre
  36.             'obZIP.AddDirectory(_Ruta)
  37.         End Set
  38.     End Property
  39.  
  40.     Private _RutaFic As String
  41.     Public Property RutaFic() As String
  42.         Get
  43.             Return _RutaFic
  44.         End Get
  45.         Set(ByVal value As String)
  46.             _RutaFic = value
  47.             _Ruta = DameRuta(_RutaFic)
  48.             _Nombre = DameFichero(_RutaFic)
  49.         End Set
  50.  
  51.     End Property
  52.  
  53.     Private _iFicheros As Integer
  54.     Public Property iFicheros() As Integer
  55.         Get
  56.             Return _iFicheros
  57.         End Get
  58.         Set(ByVal value As Integer)
  59.             _iFicheros = value
  60.         End Set
  61.     End Property
  62.  
  63.     Private _sError As String
  64.     Public Property sError() As String
  65.         Get
  66.             Return _sError
  67.         End Get
  68.         Set(ByVal value As String)
  69.             _sError = value
  70.         End Set
  71.     End Property
  72.  
  73. #End Region
  74.  
  75. #Region "MÉTODOS_PRIVADOS"
  76.  
  77.     Private Function DameRuta(RutaFic As String) As String
  78.  
  79.         Dim iPos As Integer
  80.         Dim sRuta As String = StrReverse(RutaFic)
  81.  
  82.         iPos = InStr(1, sRuta, "\")
  83.         sRuta = Right(sRuta, Len(sRuta) - iPos + 1)
  84.         sRuta = StrReverse(sRuta)
  85.         DameRuta = sRuta
  86.  
  87.     End Function
  88.  
  89.     Private Function DameFichero(RutaFic As String) As String
  90.  
  91.         Dim iPos As Integer
  92.         Dim sFic As String = StrReverse(RutaFic)
  93.  
  94.         iPos = InStr(1, sFic, "\")
  95.         sFic = Left(sFic, iPos - 1)
  96.         sFic = StrReverse(sFic)
  97.         DameFichero = sFic
  98.  
  99.     End Function
  100.  
  101. #End Region
  102.  
  103. #Region "MÉTODOS_PÚBLICOS"
  104.  
  105.     Public Sub DescomprimirTodo(sRuta As String)
  106.         On Error GoTo TrataError
  107.  
  108.         Dim ArchivoZIP As ZipFile = ZipFile.Read(_RutaFic)
  109.         ArchivoZIP.ExtractExistingFile = ExtractExistingFileAction.OverwriteSilently
  110.         ArchivoZIP.ExtractAll(sRuta)
  111.         ArchivoZIP = Nothing
  112.  
  113.         Exit Sub
  114. TrataError:
  115.         _sError = "[ZIP.DescomprimirTodo]" & vbCrLf & Err.Description
  116.     End Sub
  117.  
  118.     Public Sub DescomprimirArchivo(sRuta As String, Archivo As String, Optional bSobreEscribir As Boolean = False)
  119.         On Error GoTo TrataError
  120.  
  121.         Dim bEncontrado As Boolean = False
  122.         Dim ArchivoZIP As ZipFile = ZipFile.Read(_RutaFic)
  123.         Dim iAccion As Integer = 2
  124.  
  125.         If bSobreEscribir Then iAccion = 1
  126.  
  127.  
  128.         Dim e As ZipEntry
  129.         For Each e In ArchivoZIP
  130.             If e.FileName = Archivo Then
  131.                 e.Extract(sRuta, iAccion)
  132.                 bEncontrado = True : Exit For
  133.             End If
  134.         Next
  135.  
  136.         If Not bEncontrado Then _sError = "[ZIP.DescomprimirArchivo]" & vbCrLf & "Archivo (" & Archivo & ") no Encontrado"
  137.         ArchivoZIP = Nothing
  138.  
  139.         Exit Sub
  140. TrataError:
  141.         _sError = "[ZIP.DescomprimirArchivo]" & vbCrLf & Err.Description
  142.     End Sub
  143.  
  144.     '    Public Sub DescomprimirCarpeta(sRuta As String, Carpeta As String)
  145.     '        On Error GoTo TrataError
  146.  
  147.     '        Dim bEncontrado As Boolean = False
  148.     '        Dim ArchivoZIP As ZipFile = ZipFile.Read(_RutaFic)
  149.  
  150.     '        Dim e As ZipEntry
  151.     '        For Each e In ArchivoZIP
  152.     '            If e.IsDirectory And e.FileName = Carpeta & "/" Then
  153.     '                e.Extract(sRuta)
  154.     '                bEncontrado = True : Exit For
  155.     '            End If
  156.     '        Next
  157.  
  158.     '        If Not bEncontrado Then _sError = "[ZIP.DescomprimirCarpeta]" & vbCrLf & "Carpeta (" & Carpeta & ") no Encontrada"
  159.     '        ArchivoZIP = Nothing
  160.  
  161.     '        Exit Sub
  162.     'TrataError:
  163.     '        _sError = "[ZIP.DescomprimirCarpeta]" & vbCrLf & Err.Description
  164.     '    End Sub
  165.  
  166.     Public Sub AgregarArchivo(Archivo As String)
  167.         On Error GoTo TrataError
  168.  
  169.         obZIP.AddFile(Archivo, "")
  170.  
  171.         Exit Sub
  172. TrataError:
  173.         _sError = "[ZIP.AgregarArchivo]" & vbCrLf & Err.Description
  174.     End Sub
  175.  
  176.     Public Sub AgregarCarpeta(Carpeta As String, RutaCarpeta As String)
  177.         On Error GoTo TrataError
  178.  
  179.         obZIP.AddDirectory(Carpeta, RutaCarpeta)
  180.  
  181.         Exit Sub
  182. TrataError:
  183.         _sError = "[ZIP.AgregarArchivo]" & vbCrLf & Err.Description
  184.     End Sub
  185.  
  186.     Public Sub Guardar()
  187.         On Error GoTo TrataError
  188.  
  189.         obZIP.Save(_RutaFic)
  190.  
  191.         Exit Sub
  192. TrataError:
  193.         _sError = "[ZIP.Guardar]" & vbCrLf & Err.Description
  194.     End Sub
  195.  
  196.     '    Public Sub Reiniciar()
  197.     '        On Error GoTo TrataError
  198.  
  199.     '        ZipFile.Read(_RutaFic)
  200.  
  201.     '        For Each item In obZIP
  202.     '            obZIP.RemoveEntry(item)
  203.     '        Next
  204.  
  205.     '        Exit Sub
  206.     'TrataError:
  207.     '        _sError = "[ZIP.Reiniciar]" & vbCrLf & Err.Description
  208.     '    End Sub
  209.  
  210. #End Region
  211.  
  212.  
  213.  
  214. End Class
Advertisement
Add Comment
Please, Sign In to add comment