Page 1 sur 1

[Résolu] OpenPack : Ajout de fichiers

Publié : mer. 29/mai/2019 16:05
par falsam
Si CreatePack() permet d'ajouter un ou plusieurs fichiers, apparemment ce n'est pas le cas avec la fonction OpenPack().

Code test

Code : Tout sélectionner

Define ZipfileName.s = "test.zip" 
Define FileName.s = #PB_Compiler_Home + "Examples/3d/Data/Textures/caisse.png"

UseZipPacker()

; Création d'un fichier compressé vide
If CreatePack(0, ZipfileName, #PB_PackerPlugin_Zip)
  ClosePack(0)
EndIf

; Ajout de fichier 
;If OpenPack(0, ZipfileName, #PB_PackerPlugin_Zip)
If CreatePack(0, ZipfileName, #PB_PackerPlugin_Zip)
  AddPackFile(0, FileName, GetFilePart(FileName))
  ClosePack(0)
Else
  Debug "oops erreur ouverture"
EndIf

; Vérification
If OpenPack(0, ZipfileName) 
  If ExaminePack(0)
    While NextPackEntry(0)
      Debug "Name: " + PackEntryName(0) + ", Size: " + PackEntrySize(0)
    Wend
  EndIf
  ClosePack(0)
EndIf

Re: OpenPack : Ajout de fichiers

Publié : mer. 29/mai/2019 16:37
par Marc56
Si CreatePack() permet d'ajouter un ou plusieurs fichiers, apparemment ce n'est pas le cas avec la fonction OpenPack().
Oui, mais c'est dit dans la doc :wink:
AddPackFile()

Ajoute et compresse un fichier dans une archive préalablement créée avec CreatePack().
Je pense que c'est voulu car ajouter ou modifier des fichiers dans une archive demande beaucoup plus d'opérations.

Re: OpenPack : Ajout de fichiers

Publié : mer. 29/mai/2019 18:40
par venom
Si non, il faut scanner l'archive, et la re créer avec tes fichiers en plus.






@++

Re: OpenPack : Ajout de fichiers

Publié : mer. 29/mai/2019 21:58
par falsam
venom a écrit :Si non, il faut scanner l'archive, et la re créer avec tes fichiers en plus.
C'est une solution qui ne me convient pas car elle oblige à créer tous les fichiers avant de les enregistrer à nouveau dans une nouvelle archive .....

Re: OpenPack : Ajout de fichiers

Publié : jeu. 30/mai/2019 6:50
par venom
Je suis d'accord avec toi. Puis sur de la petite archive ça va, mais sur de la grosse archive ça devient gourmand en temps d'exécution. :?






@++

Re: OpenPack : Ajout de fichiers

Publié : jeu. 30/mai/2019 7:07
par Marc56
Pour les fonctions plus élaborées, j'utilise 7zip en tache de fond.
(Ligne de commande 7z.exe ou ligne de commande avec interface graphique de suivi 7zG.exe)

https://www.purebasic.fr/english/viewto ... 45#p505545

:wink:

Re: OpenPack : Ajout de fichiers

Publié : jeu. 30/mai/2019 12:50
par venom
Oui, après il y a bien la solution de la ligne de commande. Mais c'est dommage que Purebasic ne l'intègre pas a sa bibliothèque de compression. Je pense que falsam voulait en venir là.






@++

Re: OpenPack : Ajout de fichiers

Publié : jeu. 30/mai/2019 13:27
par Marc56
En attendant une éventuelle mise à jour de la lib packer, Thorsten1867 a fait un PBI
https://www.purebasic.fr/english/viewto ... 12&t=69369

Extended Packer Library
- Adding files/storage buffers to an existing archive (otherwise: only with CreatePack)
- Replace an existing file in the archive (otherwise: duplicate)
- Delete files from the archive
- Reading archive information into the map ZIP::Info() with file names as key
- Use of further PackerPlugins (ZIP by default) possible
- File container to store compressed files or documents of a program.
- Password support for archives and file containers through file encryption

(Pas testé)

Re: OpenPack : Ajout de fichiers

Publié : ven. 31/mai/2019 21:12
par falsam
Marc merci pour ce lien que je vais tester. Sujet résolu merci pour votre participation à ce sujet.