Page 1 sur 1

[RESOLU] Décompresser un dossier

Publié : dim. 06/mars/2022 18:58
par omega
Bonsoir

J'ai un dossier nommé data qui contient des fichiers, j'ai créé un dossier compressé (data.zip). Jusqu'ici, tout fonctionne mais, pour décompresser ce dossier, je n'arrive pas ..

Code : Tout sélectionner

UseZipPacker()


   If CreatePack(1, "data.zip") 
      dossier$=GetCurrentDirectory()+"data"
   
     If ExamineDirectory(0, dossier$, "*.*")  
       While NextDirectoryEntry(0)
          If DirectoryEntryType(0) = #PB_DirectoryEntry_File
            File$=DirectoryEntryName(0)
            Debug file$
            AddPackFile(1, dossier$+"/"+file$,file$)  
          EndIf
        Wend
        FinishDirectory(0)
      EndIf
      ClosePack(1) 
      Debug"ok"
    EndIf 
    


Re: Décompresser un dossier

Publié : dim. 06/mars/2022 21:02
par Ar-S
UncompressPackFile ?

Re: Décompresser un dossier

Publié : lun. 07/mars/2022 13:00
par omega
Bonjour Ar-S

J'ai utilisé UncompressPackFile mais je n'ai pas obtenu le résultat attendu: il décompresse les fichiers et les place dans le dossier courant alors que ces fichiers devaient être à l'intérieur du dossier DATA...Peut être qu'il va falloir indiquer le chemin de destination? si oui comment?

Re: Décompresser un dossier

Publié : lun. 07/mars/2022 18:40
par Mindphazer
Peut-être en lisant la doc ?
Syntaxe

Resultat = UncompressPackFile(#Archive, Fichier$ [, FichierCompresser$])
Description
Décompresse dans le nom de fichier spécifié, l'entrée courante de l'archive en cours d'examen avec ExaminePack() et NextPackEntry().

Re: Décompresser un dossier

Publié : lun. 07/mars/2022 20:51
par omega
Il semble que vous n'avez pas bien saisi mon problème, j'ai lu la doc et j'ai appliqué la syntaxe de décompression. Les fichiers ont bien été décompressés seulement voilà: l'emplacement des fichiers compressés n'est pas celui que j'attendais, il y a donc un problème de chemin de destination et ça ce n'est pas indiqué dans la doc...

Re: Décompresser un dossier

Publié : lun. 07/mars/2022 21:18
par Marc56
Bonsoir,

Une archive, ne comporte pas d'arborescence, elle stocke simplement les noms complets (ou relatifs) des fichiers.
La décompression standard décompacte tout dans un seul répertoire si les dossiers n'existent pas déjà.

S'ils n'existent pas, il faut donc les créer au fur et à mesure en isolant le chemin de chaque fichier. C'est assez pénible car il faut faire une fonction récursive s'il y a plusieurs niveaux.

Voir l'exemple donné par Falsam Décompresser un fichier zip
(Ce programme fonctionne, mais date de 9 ans, il faut modifier la ligne 27 :
OpenPack(#ZipFile, ZipFile$, #PB_PackerPlugin_Zip) ; à la place de #PB_Packer_Zip))


Perso, je décompacte en invoquant 7z (7zG.exe ou 7z.exe) avec RunProgramm().
L'avantage de 7zG ('G' pour graphique) est qu'il affiche une fenêtre avec barre de progression, d'état et boutons d'abandon, pause etc. Il peut être livré avec ton application (mettre le fichier "License.txt" pour la légalité) et s'utilise sans installation.


:wink: