Estrarre file ZIP nella medesima Folder con Shell

di il
3 risposte

Estrarre file ZIP nella medesima Folder con Shell

Salve,
dovrei estrarre da file .zip i files contenuti in questo nella medesima Cartella.
Ho scritto questo codice, lo vedo eseguire (vedo le finestre di DOS) ma non capisco dove vanno a finire i files estratti, ammesso che vengono estratti.
Public Function EstraiFile()
Dim PathSource As String, PathDestino As String, NomeFile As String, Applicazione As String, db As DAO.Database, rs1 As DAO.Recordset
   PathDestino = "C:\Users\Giovanni\Desktop\MyZip\"
            Set rs1 = CurrentDb.OpenRecordset("TbFile", dbOpenDynaset)
        rs1.MoveFirst
         Do Until rs1.EOF
            PathSource = (rs1!Path) & (rs1!NomeFile)
            
            Applicazione = "C:\Program Files (x86)\WinRAR\UnRar.exe " & PathSource & " " & PathDestino 
         Call Shell(Applicazione, 1)
rs1.MoveNext
Loop
End Function
Path e NomeFiles.zip vengono prelevati da una Tab, qualcuno può aiutarmi.

3 Risposte

  • Re: Estrarre file ZIP nella medesima Folder con Shell

    Devi usare per forza UnRAR...? Credo sia un problema di parametri ovvero non riconosce il Path magari servono gli Apicetti...?

    Io proverei con WinShell cosi:
    
    Sub UnzipAFile(zippedFileFullName As Variant, unzipToPath As Variant)
    
    Dim ShellApp As Object
    
    'Copy the files & folders from the zip into a folder
    Set ShellApp = CreateObject("Shell.Application")
    ShellApp.Namespace(unzipToPath).CopyHere ShellApp.Namespace(zippedFileFullName).items
    End Sub
    
  • Re: Estrarre file ZIP nella medesima Folder con Shell

    @Alex ha scritto:


    Devi usare per forza UnRAR...? Credo sia un problema di parametri ovvero non riconosce il Path magari servono gli Apicetti...?

    Io proverei con WinShell cosi:
    
    Sub UnzipAFile(zippedFileFullName As Variant, unzipToPath As Variant)
    
    Dim ShellApp As Object
    
    'Copy the files & folders from the zip into a folder
    Set ShellApp = CreateObject("Shell.Application")
    ShellApp.Namespace(unzipToPath).CopyHere ShellApp.Namespace(zippedFileFullName).items
    End Sub
    
    Grazie Alex per la risposta.
    No non è obbligatorio proverò sia la stringa quanto il tuo codice e faccio sapere.
    Saluti e grazie ancora
  • Re: Estrarre file ZIP nella medesima Folder con Shell

    Manco a dirlo Funzionaaaaa
    Ho fatto così:
    ho reso la tua Function Publica perchè la debbo chiamare da diversi posti
    Public Function UnzipAFile(zippedFileFullName As Variant, unzipToPath As Variant)
     Dim ShellApp As Object
    'Copy the files & folders from the zip into a folder
    Set ShellApp = CreateObject("Shell.Application")
    ShellApp.Namespace(unzipToPath).CopyHere ShellApp.Namespace(zippedFileFullName).items
    End Function
    La chiamata così:
    Private Sub Comando0_Click()
    Dim PathSource As Variant, PathDestino As Variant
    Dim NomeFile As String, db As DAO.Database, rs1 As DAO.Recordset
    PathDestino = "C:\Users\Giovanni\Desktop\MyZip\"
    Set rs1 = CurrentDb.OpenRecordset("TbFile", dbOpenDynaset)
            rs1.MoveFirst
             Do Until rs1.EOF
                PathSource = (rs1!Path) & (rs1!NomeFile)
       UnzipAFile PathSource, PathDestino
    rs1.MoveNext
    Loop
    End Sub
    Grazie infinite, alla prossima
Devi accedere o registrarti per scrivere nel forum
3 risposte