TclZip est un package pour tcl qui fournit les commande Zip et unZip en utilisant la librairie zlib 1.1 de Pascal Scheffers avec zipper de la critlib pour compresser et vfs::zip pour décompresser. Tclkit incluant zlib et vfs::zip en standard, vous pourrez donc facilement utiliser TclZip dans votre propre starkit / starpack. Sinon, les librairies binaires nécessaires sont inclues pour fournir de la même chose pour tclsh.
Utilisation :
Charger le paquet :
package require TclZip
Pour compresser un seul fichier :
tclzip::Zip fichier
Pour compresser un répertoire (et tous ses éventuels sous-répertoires) :
tclzip::Zip répertoire
Pour décompresser un fichier .zip :
tclzip::unZip file.zip
Téléchargements :
AM Je l'ai testé sous Windows XP et le paquet marche bien, sauf pour quelques étranges erreurs:
Répertoire original: Contenu du fichier "zip": ------------------- ------------------------ zlib11.dll zlib11.dll zlib11.zip zlib11.zip worm_h_o.txt worm_h_o.txt worm_h_o.zip worm_h_o.zip/ <-- répertoire! worm_h_o.txt
Très étrange!
Kroc : Après vérification avec Arjen, il s'est avéré que ces problèmes n'apparaissent que lorsqu'on essaie de (dé)compresser des fichiers zip actuellement en cours d'utilisation dans le même interprêteur tcl (c'est à dire monté avec vfs::zip). Dans le première cas (décompresser le meme fichier deux fois) la deuxième décompression échoue, car à la fin de la première le zip na pas pu être démonté (puisqu'en cours d'utilisation). Dans le deuxième cas, worm_h_o.zip étant monté lors de la compression, c'est sous forme de répertoire (et non de fichier) que vfs::zip le voyait à cet instant précis.