[RESOLU] Décompresser une suite de fichiers

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 une suite de fichiers

Message par omega »

Je ne comprends pas pourquoi ce code ne fonctionne pas... Il s'agit de décompresser des fichiers (zip) l"un après l'autre. Ici, seul le premier fichier est décompressé....

Code : Tout sélectionner

UseZipPacker()
rep$=GetCurrentDirectory()+"Data1"
 If ExamineDirectory(0, Rep$, "*.zip")  
    While NextDirectoryEntry(0)
      If DirectoryEntryType(0) = #PB_DirectoryEntry_File
        zipfile$=DirectoryEntryName(0)
        dbfile$=Left(zipfile$,Len(zipfile$)-4)+".db"
        OpenPack(0, "data1/" + ZipFile$)    
        If ExaminePack(0)
           While NextPackEntry(0)
             UncompressPackFile(0, "Data1\"+dbfile$)
             Debug zipfile$ + " décompressé : " + dbfile$
           Wend
        EndIf
        ClosePack(0)
      EndIf
    Wend
    FinishDirectory(0)
  EndIf
  
  
Merci d'avance
Dernière modification par omega le dim. 03/juil./2022 1:20, modifié 1 fois.
Win7 (x64) 64 bits Pb 5.72
Avatar de l’utilisateur
cage
Messages : 604
Inscription : ven. 16/oct./2015 18:22
Localisation : France
Contact :

Re: Décompresser une suite de fichiers

Message par cage »

Bonjour,
Ton code fonctionne parfaitement chez moi avec PB 6.00 et Windows 10 Pro
Code légèrement modifié:

Code : Tout sélectionner

UseZipPacker()
rep$=GetCurrentDirectory()+"Data1"
If ExamineDirectory(0, Rep$, "*.zip")  
  While NextDirectoryEntry(0)
    If DirectoryEntryType(0) = #PB_DirectoryEntry_File
      zipfile$=DirectoryEntryName(0)
      Debug zipfile$
      dbfile$=Left(zipfile$,Len(zipfile$)-4)+".db"
      Debug dbfile$
      If OpenPack(0, "Data1\" + ZipFile$)
        If ExaminePack(0)
          While NextPackEntry(0)
            UncompressPackFile(0, "Data1\"+dbfile$)
            Debug zipfile$ + " décompressé : " + dbfile$
          Wend
        EndIf
        ClosePack(0)
      EndIf
    EndIf
  Wend
  FinishDirectory(0)
EndIf
cage
■ Win10 Pro 64-bit (Intel Celeron CPU N2920 @ 1.86GHz, 4,0GB RAM, Intel HD Graphics) & PB 6.12 LTS
■ Vivre et laisser vivre.
■ PureBasic pour le fun
■ Gérard sur le forum Anglais
■ Mes sites: http://pbcage.free.fr - http://yh.toolbox.free.fr
Avatar de l’utilisateur
omega
Messages : 633
Inscription : sam. 26/nov./2011 13:04
Localisation : Alger

Re: Décompresser une suite de fichiers

Message par omega »

Bonsoir Cage et merci d'avoir essayé, toutefois, je me suis peut être mal exprimé. En fait, le fichier décompressé figure sur la liste des fichiers, seulement il est vide et ne contient rien alors qu'il contenait des données avant la compression. C'est pour cette raison que j'ai déduit que la décompression ne fonctionne pas... J'ai essayé ton code (pratiquement le même que le mien) mais toujours le même résultat.
Win7 (x64) 64 bits Pb 5.72
Avatar de l’utilisateur
cage
Messages : 604
Inscription : ven. 16/oct./2015 18:22
Localisation : France
Contact :

Re: Décompresser une suite de fichiers

Message par cage »

Bonjour omega,
Quand j'ai fais l'essai de ton code, je suis parti de 3 fichiers textes que j'ai zippé avec Bandizip.
Après exécution du code, j'ai retrouvé exactement mes 3 fichiers textes de départ.
Je teste la validité des fichiers avec HashMyFiles de NirSoft.
Je viens de recommencer en ajoutant un gros fichier exécutable zippé et le résultat est le même.
Tes fichiers sont peut-être ouverts par ailleurs ce qui pourrait expliquer que ça ne fonctionne pas pour toi.
Difficile a dire a distance.
cage
■ Win10 Pro 64-bit (Intel Celeron CPU N2920 @ 1.86GHz, 4,0GB RAM, Intel HD Graphics) & PB 6.12 LTS
■ Vivre et laisser vivre.
■ PureBasic pour le fun
■ Gérard sur le forum Anglais
■ Mes sites: http://pbcage.free.fr - http://yh.toolbox.free.fr
Avatar de l’utilisateur
omega
Messages : 633
Inscription : sam. 26/nov./2011 13:04
Localisation : Alger

Re: Décompresser une suite de fichiers

Message par omega »

C'est bon, ça marche, je n'ai rien changé au code à part la fermeture de la base de données avant l'opération unzip et la réouverture après l'opération unzip. Voilà! Ne pas oublier cette obligation c 'est important. Merci à Cage.
Win7 (x64) 64 bits Pb 5.72
Répondre