[RESOLU] Décompresser un dossier

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
Avatar de l’utilisateur
omega
Messages : 633
Inscription : sam. 26/nov./2011 13:04
Localisation : Alger

[RESOLU] Décompresser un dossier

Message 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 
    

Dernière modification par omega le mer. 23/mars/2022 21:42, modifié 1 fois.
Win7 (x64) 64 bits Pb 5.72
Avatar de l’utilisateur
Ar-S
Messages : 9540
Inscription : dim. 09/oct./2005 16:51
Contact :

Re: Décompresser un dossier

Message par Ar-S »

UncompressPackFile ?
~~~~Règles du forum ~~~~
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
Avatar de l’utilisateur
omega
Messages : 633
Inscription : sam. 26/nov./2011 13:04
Localisation : Alger

Re: Décompresser un dossier

Message 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?
Win7 (x64) 64 bits Pb 5.72
Avatar de l’utilisateur
Mindphazer
Messages : 695
Inscription : mer. 24/août/2005 10:42

Re: Décompresser un dossier

Message 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().
Bureau : Win10 64bits
Maison : Macbook Pro M3 16" SSD 512 Go / Ram 24 Go - iPad Pro 32 Go (pour madame) - iPhone 15 Pro Max 256 Go
Avatar de l’utilisateur
omega
Messages : 633
Inscription : sam. 26/nov./2011 13:04
Localisation : Alger

Re: Décompresser un dossier

Message 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...
Win7 (x64) 64 bits Pb 5.72
Marc56
Messages : 2197
Inscription : sam. 08/févr./2014 15:19

Re: Décompresser un dossier

Message 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:
Répondre