** NORMAS DEL FORO **
Inicio del foro Inicio del foro > Access y VBA > Access y VBA
  Mensajes nuevos Mensajes nuevos RSS - Descomprimir fichero zip
  Preguntas frecuentes Preguntas frecuentes  Buscar en el foro   Eventos   Registro Registro  Iniciar sesion Iniciar sesion

Tema cerradoDescomprimir fichero zip

 Responder Responder
Autor
Mensaje
arodrigu Ver desplegable
Colaborador
Colaborador
Avatar

Unido: 04/Marzo/2005
Localización: España
Estado: Sin conexión
Puntos: 599
Enlace directo a este mensaje Tema: Descomprimir fichero zip
    Enviado: 19/Febrero/2020 a las 12:54
Hola.
Necesito descomprimir un fichero zip y extraer los archivos que contenga para cambiarles el nombre y guardarlos en otra carpeta.

Como no tengo ni idea he buscado por ahí y he intentado adaptar un código que encontrado que, creo, está orientado a excel, pero ya me da error en la primera línea.

Dice que no se encontró el método o el dato miembro de (.GetOpenFileName).
Posteriormente tampoco reconoce: oApp.Nameespace.

Imagino que esto estará súper tratado (aunque yo no lo encuentro). A ver si me podéis orientar.

Gracias


    Dim FSO As Object
    Dim oApp As Object
    Dim Fname As Variant
    Dim FileNameFolder As Variant
    Dim DefPath As String
    Dim strDate As String
    Dim I As Long
    Dim num As Long

    Fname = Application.GetOpenFileName(filefilter:="Zip Files (*.zip), *.zip", _
                                        MultiSelect:=True)
    If IsArray(Fname) = False Then
        'Hacer Nada
    Else
        'Ubicacion de la nueva carpeta.
        DefPath = "D:\GISAC-Pruebas\GISAC\GISAC-Contenedor\AR\"

        'Crear el nombre de la carpeta
        FileNameFolder = DefPath & "Descomprimidos\"

        'Crear carpeta en DefPath
        MkDir FileNameFolder

        'Extraer archivos en la nueva carpeta creada
        Set oApp = CreateObject("Shell.Application")

        For I = LBound(Fname) To UBound(Fname)
            num = oApp.Namespace(FileNameFolder).items.Count

            oApp.Namespace(FileNameFolder).CopyHere oApp.Namespace(Fname(I)).items

        Next I

        MsgBox "Encontrará los archivo en la ruta: " & FileNameFolder

    End If



Fuerza y honor.
Saludos de Arturo desde Madrid
Arriba
rokoko Ver desplegable
Colaborador
Colaborador
Avatar

Unido: 16/Febrero/2008
Localización: Pamplona
Estado: Sin conexión
Puntos: 3071
Enlace directo a este mensaje Enviado: 19/Febrero/2020 a las 15:08
Arriba
lbauluz Ver desplegable
Administrador
Administrador
Avatar

Unido: 29/Marzo/2005
Localización: La Gloria
Estado: Sin conexión
Puntos: 3878
Enlace directo a este mensaje Enviado: 19/Febrero/2020 a las 22:15
Creo que GetOpenFileName en Access es FileDialog


Luis
El Búho es un pajarraco
Arriba
arodrigu Ver desplegable
Colaborador
Colaborador
Avatar

Unido: 04/Marzo/2005
Localización: España
Estado: Sin conexión
Puntos: 599
Enlace directo a este mensaje Enviado: 02/Marzo/2020 a las 14:34
Hola. Gracias a los dos.
Perdón por tardar en contestar pero es que he estado enfermo.
De todo he extraido lo siguiente (que me parece lo más sencillo) y lo he colocado en un módulo:


Public Function UnZip(ByVal zipArchivePath As String, ByVal extractToFolder As String)
    Dim sh As Object
    Dim fSource As Object
    Dim fTarget As Object
    
    Set sh = CreateObject("Shell.Application")

    Set fSource = sh.NameSpace((zipArchivePath))
    Set fTarget = sh.NameSpace((extractToFolder))
    
    fTarget.CopyHere fSource.Items

End Function

Desde un botón llamo a la función Unzip:

Call UnZip("D:\GISAC-Pruebas\GISAC\GISAC-Contenedor\AR\DescargadosGeiser\anexosCSVAsiento_E05035001s19N0000012", "D:\GISAC-Pruebas\GISAC\GISAC-Contenedor\AR\Descodificados\")

Y me devuelve el errror 91 "No ha definido la variable.....etc), en la línea:

fTarget.CopyHere fSource.Items

No lo entiendo, yo creo que están definidas todas las variables.
Podéis mirar a ver, por favor.
Fuerza y honor.
Saludos de Arturo desde Madrid
Arriba
javier.mil Ver desplegable
Colaborador
Colaborador
Avatar

Unido: 10/Agosto/2005
Localización: España
Estado: Sin conexión
Puntos: 4856
Enlace directo a este mensaje Enviado: 02/Marzo/2020 a las 16:39
Creo te falta la extension del fichero

Call UnZip("D:\GISAC-Pruebas\GISAC\GISAC-Contenedor\AR\DescargadosGeiser\anexosCSVAsiento_E05035001s19N0000012.zip", "D:\GISAC-Pruebas\GISAC\GISAC-Contenedor\AR\Descodificados\"
Arriba
arodrigu Ver desplegable
Colaborador
Colaborador
Avatar

Unido: 04/Marzo/2005
Localización: España
Estado: Sin conexión
Puntos: 599
Enlace directo a este mensaje Enviado: 03/Marzo/2020 a las 10:21
Hola Javier.

Efectivamente era eso. Muchísimas gracias.
Por mi parte podéis cerrar el hilo.

Fuerza y honor.
Saludos de Arturo desde Madrid
Arriba
 Responder Responder
  Compartir tema   

Ir al foro Permisos de foro Ver desplegable