Estrarre file ZIP nella medesima Folder con Shell

di Gianni55 il
3 risposte
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

  • 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
    
  • @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
  • 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