Zipper - Creer une archive

cs_tibob26 Messages postés 3 Date d'inscription lundi 20 juin 2005 Statut Membre Dernière intervention 14 août 2007 - 14 août 2007 à 15:28
cs_tibob26 Messages postés 3 Date d'inscription lundi 20 juin 2005 Statut Membre Dernière intervention 14 août 2007 - 14 août 2007 à 17:04
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

cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 131
14 août 2007 à 15:41
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
0
Big200148 Messages postés 149 Date d'inscription mardi 30 septembre 2003 Statut Membre Dernière intervention 23 juillet 2009
14 août 2007 à 15:44
L'utilisation de Zlib fonctionne très bien. Sinon tu peut coder ton propre compresseur avec l'algorithme d'Huffman
0
cs_tibob26 Messages postés 3 Date d'inscription lundi 20 juin 2005 Statut Membre Dernière intervention 14 août 2007
14 août 2007 à 15:55
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
0
cs_tibob26 Messages postés 3 Date d'inscription lundi 20 juin 2005 Statut Membre Dernière intervention 14 août 2007
14 août 2007 à 17:04
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
0
Rejoignez-nous