Constancia icon

VB_CLS_ZIP

Constancia | PRO | 07/12/15 09:22:53 PM UTC | 0 ⭐ | 319 👁️ | Never ⏰ | []
VB.NET |

5.4 KB

|

None

|

0 👍

/

0 👎

'****** HAY QUE REFERENCIAR [Ionic.Zip.dll]
Imports Ionic.Zip
 
 
Public Class ZIP
 
    Private obZIP As New ZipFile
 
    Public Sub New()
 
    End Sub
 
 
#Region "PROPIEDADES"
 
    Private _Nombre As String
    Public Property Nombre() As String
        Get
            Return _Nombre
        End Get
        Set(ByVal value As String)
            _Nombre = value
            If _Ruta <> "" Then _RutaFic = _Ruta & _Nombre
            obZIP.Name = _Nombre
        End Set
    End Property
 
    Private _Ruta As String
    Public Property Ruta() As String
        Get
            Return _Ruta
        End Get
        Set(ByVal value As String)
            _Ruta = value
            If _Nombre <> "" Then _RutaFic = _Ruta & _Nombre
            'obZIP.AddDirectory(_Ruta)
        End Set
    End Property
 
    Private _RutaFic As String
    Public Property RutaFic() As String
        Get
            Return _RutaFic
        End Get
        Set(ByVal value As String)
            _RutaFic = value
            _Ruta = DameRuta(_RutaFic)
            _Nombre = DameFichero(_RutaFic)
        End Set
 
    End Property
 
    Private _iFicheros As Integer
    Public Property iFicheros() As Integer
        Get
            Return _iFicheros
        End Get
        Set(ByVal value As Integer)
            _iFicheros = value
        End Set
    End Property
 
    Private _sError As String
    Public Property sError() As String
        Get
            Return _sError
        End Get
        Set(ByVal value As String)
            _sError = value
        End Set
    End Property
 
#End Region
 
#Region "MÉTODOS_PRIVADOS"
 
    Private Function DameRuta(RutaFic As String) As String
 
        Dim iPos As Integer
        Dim sRuta As String = StrReverse(RutaFic)
 
        iPos = InStr(1, sRuta, "\")
        sRuta = Right(sRuta, Len(sRuta) - iPos + 1)
        sRuta = StrReverse(sRuta)
        DameRuta = sRuta
 
    End Function
 
    Private Function DameFichero(RutaFic As String) As String
 
        Dim iPos As Integer
        Dim sFic As String = StrReverse(RutaFic)
 
        iPos = InStr(1, sFic, "\")
        sFic = Left(sFic, iPos - 1)
        sFic = StrReverse(sFic)
        DameFichero = sFic
 
    End Function
 
#End Region
 
#Region "MÉTODOS_PÚBLICOS"
 
    Public Sub DescomprimirTodo(sRuta As String)
        On Error GoTo TrataError
 
        Dim ArchivoZIP As ZipFile = ZipFile.Read(_RutaFic)
        ArchivoZIP.ExtractExistingFile = ExtractExistingFileAction.OverwriteSilently
        ArchivoZIP.ExtractAll(sRuta)
        ArchivoZIP = Nothing
 
        Exit Sub
TrataError:
        _sError = "[ZIP.DescomprimirTodo]" & vbCrLf & Err.Description
    End Sub
 
    Public Sub DescomprimirArchivo(sRuta As String, Archivo As String, Optional bSobreEscribir As Boolean = False)
        On Error GoTo TrataError
 
        Dim bEncontrado As Boolean = False
        Dim ArchivoZIP As ZipFile = ZipFile.Read(_RutaFic)
        Dim iAccion As Integer = 2
 
        If bSobreEscribir Then iAccion = 1
 
 
        Dim e As ZipEntry
        For Each e In ArchivoZIP
            If e.FileName = Archivo Then
                e.Extract(sRuta, iAccion)
                bEncontrado = True : Exit For
            End If
        Next
 
        If Not bEncontrado Then _sError = "[ZIP.DescomprimirArchivo]" & vbCrLf & "Archivo (" & Archivo & ") no Encontrado"
        ArchivoZIP = Nothing
 
        Exit Sub
TrataError:
        _sError = "[ZIP.DescomprimirArchivo]" & vbCrLf & Err.Description
    End Sub
 
    '    Public Sub DescomprimirCarpeta(sRuta As String, Carpeta As String)
    '        On Error GoTo TrataError
 
    '        Dim bEncontrado As Boolean = False
    '        Dim ArchivoZIP As ZipFile = ZipFile.Read(_RutaFic)
 
    '        Dim e As ZipEntry
    '        For Each e In ArchivoZIP
    '            If e.IsDirectory And e.FileName = Carpeta & "/" Then
    '                e.Extract(sRuta)
    '                bEncontrado = True : Exit For
    '            End If
    '        Next
 
    '        If Not bEncontrado Then _sError = "[ZIP.DescomprimirCarpeta]" & vbCrLf & "Carpeta (" & Carpeta & ") no Encontrada"
    '        ArchivoZIP = Nothing
 
    '        Exit Sub
    'TrataError:
    '        _sError = "[ZIP.DescomprimirCarpeta]" & vbCrLf & Err.Description
    '    End Sub
 
    Public Sub AgregarArchivo(Archivo As String)
        On Error GoTo TrataError
 
        obZIP.AddFile(Archivo, "")
 
        Exit Sub
TrataError:
        _sError = "[ZIP.AgregarArchivo]" & vbCrLf & Err.Description
    End Sub
 
    Public Sub AgregarCarpeta(Carpeta As String, RutaCarpeta As String)
        On Error GoTo TrataError
 
        obZIP.AddDirectory(Carpeta, RutaCarpeta)
 
        Exit Sub
TrataError:
        _sError = "[ZIP.AgregarArchivo]" & vbCrLf & Err.Description
    End Sub
 
    Public Sub Guardar()
        On Error GoTo TrataError
 
        obZIP.Save(_RutaFic)
 
        Exit Sub
TrataError:
        _sError = "[ZIP.Guardar]" & vbCrLf & Err.Description
    End Sub
 
    '    Public Sub Reiniciar()
    '        On Error GoTo TrataError
 
    '        ZipFile.Read(_RutaFic)
 
    '        For Each item In obZIP
    '            obZIP.RemoveEntry(item)
    '        Next
 
    '        Exit Sub
    'TrataError:
    '        _sError = "[ZIP.Reiniciar]" & vbCrLf & Err.Description
    '    End Sub
 
#End Region
 
 
 
End Class

Comments