Zipper - Creer une archive

Signaler
Messages postés
3
Date d'inscription
lundi 20 juin 2005
Statut
Membre
Dernière intervention
14 août 2007
-
Messages postés
3
Date d'inscription
lundi 20 juin 2005
Statut
Membre
Dernière intervention
14 août 2007
-
Bonjour,

je crée une application qui crée une arborescence en VB et copie dedans des fichiers.

je cherche un moyen de creer un fichier zip qui contienne cette arborescence. Je n'ai pas besoind de compression, juste d'un conteneur. j'ai essayé plein de codes trouvés sur vbfrance mais aucun ne marche.

le plus fréquent était d'utiliser la librairie zlib.dll, hors Visual Studio refuse d'importer cette dll ("Impossible d'ajouter une référence au fichier spécifié").

je travaille sur Windows 2000 avec VB6.0.

Merci de votre aide

tibob

4 réponses

Messages postés
15814
Date d'inscription
jeudi 8 août 2002
Statut
Modérateur
Dernière intervention
4 mars 2013
107
Normal, il s'agit d'une "vraie" dll codée en C en non d'une dll ActiveX.

Avec tout les exemples du site, tu n'as pas réussi à trouver ton bonheur pour savoir comment l'utiliser ???

Perso, j'utilise l'excellente source de Jack :
http://www.vbfrance.com/codes/ZIP-UNZIP-CLASSES-POUR-GERER-VOS-ZIPS_24072.aspx
Messages postés
149
Date d'inscription
mardi 30 septembre 2003
Statut
Membre
Dernière intervention
23 juillet 2009

L'utilisation de Zlib fonctionne très bien. Sinon tu peut coder ton propre compresseur avec l'algorithme d'Huffman
Messages postés
3
Date d'inscription
lundi 20 juin 2005
Statut
Membre
Dernière intervention
14 août 2007

Merci pour le lien, ca a l'air de marcher chez moi.

Je vais l'étudier plus en détail pour essayer de l'intégrer à mon appli.

Merci beaucoup pour vos réponses si rapides
Messages postés
3
Date d'inscription
lundi 20 juin 2005
Statut
Membre
Dernière intervention
14 août 2007

En effet, je n'avais pas remarqué cette zlib.dll.res qui fait marcher le programme. C'est nickel, sauf pour un point de détail. il n'y a pas de méthode pour zipper un répertoire.

j'utilise une version encore plus récente de Jack qui regroupe zip et unzip dans la même classe. je parcours donc chaque sous dossier et ajoute les fichiers avec leur chemin relatif. le problème avec cette méthode est que quand un dossier est vide, il n'apparait pas dans le .zip.

voila mon code :

Private Sub creationZipFolder(fileZip As clsZip, nameDossier As String)
    Dim fso As FileSystemObject
    Dim dossier As folder
    Dim subDossier As folder
    Dim fichier As file
   
    Set fso = CreateObject("Scripting.FileSystemObject")
    Set dossier = fso.GetFolder(nameDossier)
   
    For Each fichier In dossier.Files
        fileZip.FileAdd fichier.Path, WithRelativePath, True
    Next
   
    For Each subDossier In dossier.SubFolders
       
        creationZipFolder fileZip, nameDossier & "" & subDossier.name
    Next
   
End Sub

j'ai essayé en crééant un fichier vide dans les répertoires vides, et en les supprimant de l'archive ensuite, mais winzip considère que l'archive est corrompue et garde une référence sur ces fichiers.

Merci