Créer et lire un fichier compressé (ZIP)

Informations pour bien débuter en PureBasic
Avatar de l’utilisateur
falsam
Messages : 7324
Inscription : dim. 22/août/2010 15:24
Localisation : IDF (Yvelines)
Contact :

Créer et lire un fichier compressé (ZIP)

Message par falsam »

Ce tutoriel utilise la version 5.10 Beta 3.
Créer un dossier pour sauvegarder les deux petits codes ci-dessous.

A sauvegarder sous le nom de demo1.pb
-Création d'un simple fichier zip sans dossier
-Ajout d'un fichier (Le code ci-dessous) dans le fichier zip

Code : Tout sélectionner

;Demo1 : Création d'un fichier zip
; 
Enumeration
  #ZipFile
EndEnumeration

UseZipPacker()

;Création et ajout d'un fichier 
CreatePack(#ZipFile, "myzip.zip", #PB_Packer_Zip)

;AddPackFile ajoute et compresse le fichier spécifié 
;au fichier zip préalablement créé avec CreatePack(). 
AddPackFile(#ZipFile, "demo1.pb", "demo1.pb")

ClosePack(#ZipFile)
Contrairement à l'aide en français, le paramètre 'NiveauCompression' n'existe apparemment pas. Le deuxième paramètre permet de donner un nom de fichier différent du fichier d'origine.
Dernière modification par falsam le mar. 15/janv./2013 14:38, modifié 3 fois.
Avatar de l’utilisateur
falsam
Messages : 7324
Inscription : dim. 22/août/2010 15:24
Localisation : IDF (Yvelines)
Contact :

Re: Décompresser un fichier (ZIP)

Message par falsam »

A Sauvegarder sous le nom de demo2.pb
-Décompresser un fichier compressé ne comprenant pas de dossier.

Code : Tout sélectionner

;Demo2 : Décompression d'un fichier zip
; 
Enumeration
  #ZipFile
EndEnumeration

UseZipPacker()

;Pour cette demo on va créer un dossier de travail 
;dans le dossier courrant de cette démo
CreateDirectory("tmp")

OpenPack(#ZipFile, "myzip.zip", #PB_Packer_Zip)

If ExaminePack(#ZipFile)
  While NextPackEntry(#ZipFile)
    File$ = PackEntryName(#ZipFile)
    UncompressPackFile(#ZipFile, GetCurrentDirectory()+"tmp\"+File$, File$)
  Wend
EndIf

ClosePack(#ZipFile)
Dernière modification par falsam le mar. 15/janv./2013 14:41, modifié 3 fois.
Configuration : Windows 11 Famille 64-bit - PB 6.20 x64 - AMD Ryzen 7 - 16 GO RAM
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
Avatar de l’utilisateur
Kwai chang caine
Messages : 6989
Inscription : sam. 23/sept./2006 18:32
Localisation : Isere

Re: Créer et lire un fichier compressé (ZIP)

Message par Kwai chang caine »

Cool cette intégration du ZIP en natif, faut croire que les droits ont été lachés
Merci falsam, ça marche nickel 8)
ImageLe bonheur est une route...
Pas une destination

PureBasic Forum Officiel - Site PureBasic
Avatar de l’utilisateur
falsam
Messages : 7324
Inscription : dim. 22/août/2010 15:24
Localisation : IDF (Yvelines)
Contact :

Lecture d'un fichier compressé contenant des dossiers

Message par falsam »

Ce 3eme exemple a pour objectif d'illustrer le principe de lecture d'un fichier compressé contenant des dossiers et sous dossiers. Je ne traite pas, pour le moment, la manière de décompresser ces fichiers.

A Sauvegarder sous le nom de demo3.pb

Code : Tout sélectionner

;Demo3 : Principe de lecture d'un fichier zip contenant des dossiers et sous dossiers
; 
Enumeration
  #ZipFile
EndEnumeration

UseZipPacker()

ZipFile$ = OpenFileRequester("Ouvrir un fichier ...","", "Fichiers compressés|*.zip", 0)

If ZipFile$ <> ""
  
  OpenPack(#ZipFile, ZipFile$, #PB_Packer_Zip)
   
  If ExaminePack(#ZipFile)
    While NextPackEntry(#ZipFile)
      
      PackEntryName$ = PackEntryName(#ZipFile)
      
      Select PackEntryType(#ZipFile)
        
        Case #PB_Packer_File
          Debug PackEntryName$ + " est un fichier"
          
        Case #PB_Packer_Directory
          Debug PackEntryName$ + " est un dossier contenant des sous dossiers"
          
      EndSelect
    Wend  
  EndIf
EndIf
Configuration : Windows 11 Famille 64-bit - PB 6.20 x64 - AMD Ryzen 7 - 16 GO RAM
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
Répondre