Zip - unzip : classes pour gérer vos zips

Soyez le premier à donner votre avis sur cette source.

Vue 30 203 fois - Téléchargée 4 581 fois

Description

Les classes originales sont de Mc Millan dont le lien est fourni dans le Zip.
J'ai repris ces classes et je les ai modifiées afin de pouvoir gérer les fichiers Zip plus facilement. J'y ai ajouté aussi des commentaires afin de mieux comprendre le principe.
Les zips fabriqués sont compatibles avec les Zip standards - y compris les accents, voir mise à jour du 12/6/06
Les classes utilisent la librairie ZLib.dll qui est beaucoup plus pratique que les Zip.dll et Unzip.dll
Le fichier ZLib.dll est inclu dans le zip, mais aussi dans la ressource du projet : comme ça, si le fichier disparait, on peut le recréer facilement.

Voyez les applis de démo fournies avec : Leur utilisation est assez simple.

Conclusion :


J'avais besoin de cet ensemble de gestion de Zip pour compresser un ensemble de fichiers pour sauvegarde.
Ce qu'il manque :
- Gestion de l'ajout de fichier dans un Zip existant
- Gestion de la suppression de fichier dans un Zip existant
tout simplement parce que je n'en avais pas besoin et aussi parce que c'est assez coton à gérer.

Codes Sources

A voir également

Ajouter un commentaire Commentaires
Messages postés
1
Date d'inscription
jeudi 9 janvier 2003
Statut
Membre
Dernière intervention
31 août 2010

Bonjour,
Pour la décompression d'un fichier avec 0 octet ou d'un fichier déjà zipper la décompression ne fonctionne pas !!
Pour celà il faut mettre la variable niveau de compression à 0
voici la correction que j'ai apporté au source:

dans la function FileAddSingle:

Select Case cZipError
Case 0, 7 ' c'est OK on complète les données au tableau
With tabFiles(cptTab)
.commun = varCommunZF
'---------------------------------------
'Modification apportée le 11/08/2010
'---------------------------------------
If (varCommunZF.UncompressedSize 0) Or (InStrRev(UCase(sFileName), ".ZIP", , vbBinaryCompare) > 0) Then .commun.CompressionMethod 0

.localFileHeaderZF = LocalFileHeader
.centralFileHeaderZFA = CentralFileHeaderA
.centralFileHeaderZFC = CentralFileHeaderC
etc.....
Messages postés
17288
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
27 septembre 2021
71
Merci pour ce code.
je l'ai déplumé totalement, viré les structures etc.

http://www.vbfrance.com/codes/SABNZBD-UPLOAD-FICHIERS-NZB_50575.aspx

ma problématique etait simple: me faut générer en mémoire le contenu d'un zip, ne contenant qu'un seul fichier.
Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
80
Pas fait gaffe à ce "détail".
Faudrait regarder en mode debug ce qu'on trouve lorsqu'il s'occupe de la structure vide.
Désolé, pas le temps d'approfondir.
Messages postés
91
Date d'inscription
mercredi 6 novembre 2002
Statut
Membre
Dernière intervention
20 mars 2009

Excellente source, sauf quand on dezip une source déjà compréssée (par 7z par ex) les dossiers vides ne sont pas reconnus.
Ya t'il qq part un paramètre à modifier ou rajouter ??
Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
80
Bonne question.
Je n'ai pas la connaissance pour te répondre.
Cette source ne fait que reproduire le format d'un fichier ZIP, mais je ne me rappelle pas avoir vu de description de cette option dans la structure originelle.
Je regarderai quand j'aurai 5 minutes (pas tout de suite)
Afficher les 69 commentaires

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.