Page 1 sur 1

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

Publié : dim. 13/janv./2013 12:49
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.

Re: Décompresser un fichier (ZIP)

Publié : dim. 13/janv./2013 12:50
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)

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

Publié : dim. 13/janv./2013 17:38
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)

Lecture d'un fichier compressé contenant des dossiers

Publié : mar. 15/janv./2013 13:34
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