'Classe pour Zipper-Dézipper. Utilise Zlib, infoZip et partiellement DotNetZip.
En fonction de la librairie utilisée peut gérer des fichiers de trés grandes tailles,
'des mots de passe !
'Classe adaptée, à l'origine, de l'excellente source de 'Jack' membre VbFrance :
'http://www.vbfrance.com/code.aspx?ID=24072
'q ui a lui-même adapté le Code original : Andrew McMillan (andrew@paradoxes.info) .....
'
'depuis cette classe se différencie de celles de Jack, entre-autres, sur les points suivants :
' -une seule classe à intégrer dans 1 projet pour gérer les fonctions de zippage et dézippage :
' cette classe clsZip et l'ajout d'une ou des dll gérées par la classe : Zlib.dll, dllActX_VBz11.dll, partiellement DotNetZip.dll
' -fonctionnement du zippage : création d'un fichier vierge zip, ajout des éléments zippés au fur et à mesures
' dans ce fichier pour éviter les problèmes mémoire, puis fermeture-écriture du zip. L'ensemble transite par
' un tableau typé à la place d'une collection.
' -l'identification des fichiers à zipper dans un dossier et sous-dossiers ne passe pas par FSO mais par API
' -toutes les fonctions de lectures écritures sont faites en API, ce qui permet de gérer 1 fichier zip de la taille
' maxi d'un fichier pour les disques FAT32, soit 4 Go et quelques ..., et accélère ces traitements
' -ajout de fonctions supplémentaires, comme ajout et suppression de fichiers dans 1 zip déjà élaboré, copie ou déplacement d'1 fichier d'1 zip vers 1
' nouveau zip pour ce fichier. (voir liste des propriétés et méthodes)
' -ajout d'une option de cryptage/décryptage du catalogue du zip sur 1 idée et développement de 'Black Dragon' (pour Zlib)
' -cryptage/décryptage du Zip, lui-même, en utilisant des librairies différentes de Zlib
' -la classe interface maintenant plusieures librairies via 1 propriété 'algolib'. A l'initialisation
' la classe gère les Zips avec Zlib.dll, ou si elle n'est pas présente, en mode VB pur.
' Mais il est donc possible de réorienter la gestion des Zips avec les dll d'InfoZIP (vbZip11.dll, vbUZip10.dll)
' qui sont interfacées avec la classe au travers d'une Dll activeX (dllActX_VBz11.dll) qui est utilisée comme un objet
' dans la classe pour éviter de devoir la référencer dans le projet qui recevra la classe pour l'utiliser
' (voir les avantages et inconvénients de ces dll plus loin); ou en VB pur, selon 1 suggestion et source de 'EBARTSOFT',
' mais dont la partie Inflate reste à débugguer (pas trop motivé !) ; ou encore DotNetZip mais qui nécessite bien sûr
' puisqu'on parle de Net qu'au minimum FrameWk 2 soit installé sur la machine. D'autre part l'interface de cette Dll
' n'est pas complète car ne dézippage ne fonctionne pas correctement.
Un exemple simple d'utilisation est fourni dans le zip, SVP ne jugez pas son interface ! Cet exemple n'a qu'un caractère d'information de l'utilisation de la classe, mais en lisant les commentaires en début de la classe vous y trouverez toutes ses possibilités.