COMPRESSER/DÉCOMPRESSER DES FICHIERS ZIP

cs_Alain Proviste Messages postés 908 Date d'inscription jeudi 26 juillet 2001 Statut Modérateur Dernière intervention 1 février 2015 - 15 juil. 2002 à 22:19
cs_rafanel Messages postés 21 Date d'inscription lundi 17 mars 2003 Statut Membre Dernière intervention 8 mars 2012 - 23 sept. 2005 à 09:47
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/4035-compresser-decompresser-des-fichiers-zip

cs_rafanel Messages postés 21 Date d'inscription lundi 17 mars 2003 Statut Membre Dernière intervention 8 mars 2012
23 sept. 2005 à 09:47
moi aussi c'est juste ce qu'il me fallait,
-1) mais peut on rajouter au debut du chemin du fichier la lettr edu lecteur dans l'archive?
ex:
c:\temp\toto.txt
au lieu d'avoir
temp\toto.txt

-2) peut on connectre le taux de compression la taille du zip avant qu'il soit réellement écrit dans le fichier de destination?

merci d'avance
TR
guy000 Messages postés 24 Date d'inscription lundi 11 août 2003 Statut Membre Dernière intervention 3 mai 2005
3 mai 2005 à 15:02
moi aussi c'est juste ce qu'il me fallait, c'est pour ca que je te dis merci.

cependant j'ai un probleme avec les gros fichiers,lorsque j'ajoute un fichier de 85 Mo ca plante
odan71 Messages postés 140 Date d'inscription mardi 8 juillet 2003 Statut Membre Dernière intervention 11 décembre 2007
18 avril 2005 à 16:26
pile qu'est-ce-qui m'faut :>)

grand merci ;)
cs_PaTaTe Messages postés 2126 Date d'inscription mercredi 21 août 2002 Statut Contributeur Dernière intervention 19 février 2021 2
19 août 2004 à 17:54
C bon g trouvé !

Par contre si quelqu"un c comment retourner la progression de la decompression je suis preuneur :)

@+
cs_PaTaTe Messages postés 2126 Date d'inscription mercredi 21 août 2002 Statut Contributeur Dernière intervention 19 février 2021 2
9 août 2004 à 03:15
est ce normal que quand je souhaite decompresser un fichier il ne le decompresse pas ?

J'ai pas encore essayé laa compression
Goldenbond Messages postés 6 Date d'inscription dimanche 6 juin 2004 Statut Membre Dernière intervention 27 juillet 2004
28 juin 2004 à 10:59
J'ai pas regardé la source, juste les commentaires que je sais déjà que cela rique d'être excellent !!!

Merci ! :-)
cs_Klimero Messages postés 73 Date d'inscription lundi 2 avril 2001 Statut Membre Dernière intervention 12 janvier 2010
14 juin 2004 à 11:15
Pas que je sache...
YellowPanther Messages postés 3 Date d'inscription mercredi 12 février 2003 Statut Membre Dernière intervention 13 juin 2004
13 juin 2004 à 20:30
La source est très bien.
Est-il possibe avec ces DLL de créer un auto-extractible?

Yellow_Panther
tostinni Messages postés 1 Date d'inscription mercredi 31 mars 2004 Statut Membre Dernière intervention 1 avril 2004
1 avril 2004 à 19:23
Merci bcp Klimero, cette classe est vraiment tres utile.
Et je confirme : ca accepte les chemins rezo sans probleme et la variable bJunkDir est aussi extremement utile.

Encore merci pour tt.

Nikko
cs_Patrice99 Messages postés 1221 Date d'inscription jeudi 23 août 2001 Statut Membre Dernière intervention 9 septembre 2018
16 févr. 2004 à 13:33
Est-ce que par hasard quelqu'un n'aurait pas déjà cherché à remettre au propre cette classe, qui fonctionne très bien par ailleurs, mais qui comporte de nombreuses variables globales dans tous les sens ? ben sinon je vais le faire... j'ai déjà fait une fonction qui installe à la volée les 2 dll zip dans le répertoire système, si elles n'y sont pas déjà.
Horfee Messages postés 188 Date d'inscription mercredi 9 avril 2003 Statut Membre Dernière intervention 10 août 2009
28 déc. 2003 à 23:25
ca existerait pas en VB.NET ???trop la fleme de le retaper...
ralf19b3 Messages postés 77 Date d'inscription dimanche 5 janvier 2003 Statut Membre Dernière intervention 5 janvier 2004
4 nov. 2003 à 14:11
est ce ke vous pouvez explike comment faire pour compresser un dossier car moi g seulment besoin de compression de dossier et aparament, ce n pas faisableavec ce programme , merci d'avance
cs_Klimero Messages postés 73 Date d'inscription lundi 2 avril 2001 Statut Membre Dernière intervention 12 janvier 2010
29 oct. 2003 à 17:40
Bien sûr, il suffit que tu le code. Le travail est déjà pas mal maché non ?
vivebaloo Messages postés 3 Date d'inscription mardi 21 mai 2013 Statut Membre Dernière intervention 21 mai 2013
29 oct. 2003 à 15:12
est-il possible de zipper directement un dossier et ses sous-dossier en concervant l'arborescence ?
cs_Klimero Messages postés 73 Date d'inscription lundi 2 avril 2001 Statut Membre Dernière intervention 12 janvier 2010
29 oct. 2003 à 13:46
ben, euh, à moins que vous ayez très envie de m'envoyer des sous, moi j'ai rien contre :) sinon faut voir ce que dit la licence ZIP, je l'ai pas relu depuis longtemps mais il me semble bien que c'est complètement libre de droit, en tout cas les sources sont téléchargeables gratuitement sur le net, par contre je ne les fourni pas.
vivebaloo Messages postés 3 Date d'inscription mardi 21 mai 2013 Statut Membre Dernière intervention 21 mai 2013
29 oct. 2003 à 13:10
êtes vous bien sûr que je peux l'utiliser dans un milieu professionnel (je ne vends rien mais je suis pro quand même) sans rien payer ?
CyberFlash Messages postés 38 Date d'inscription jeudi 2 janvier 2003 Statut Membre Dernière intervention 31 mai 2004
30 sept. 2003 à 20:44
Suite au message que j'ai posté il y a qq min et aux teste que je viens de faire je peux vous affirmer que:

- Si un nom de fichier comporte le caractère suivant: [ (crochet d'ouverture), et bien celui-ci n'est pas ajouter au ZIP et une erreur est retournée.

Voilà pour l'information
@+
CyberFlash Messages postés 38 Date d'inscription jeudi 2 janvier 2003 Statut Membre Dernière intervention 31 mai 2004
30 sept. 2003 à 20:20
Non franchement cette source est super. elle m'a bien rendu service.

Mais j'ai quand même une question:
Dans les commantaire, il est bien indiqué que la fonction AddFile retourne la valeur 0 ou 1.
Maintenant voilà... Avec certain fichier, cette fonction me renvoi non pas un 0 ni un 1 mais un 12 !!!

J'aimerais bien connaitre d'ou viens se chiffre??

Merci d'avance

Au fait, ce '12' me viens (entre autre), avec des film au format .AVI. Mais il apparaît aussi avec d'autre fichier
balifoy Messages postés 4 Date d'inscription jeudi 20 février 2003 Statut Membre Dernière intervention 13 janvier 2004
27 sept. 2003 à 21:57
Rien d'autre à ajouté, c exactement ce que je recherchai!!
Merci bien monsieur ;o)
cs_anakhin Messages postés 13 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 13 mai 2004
14 août 2003 à 15:40
ya pas a ch... ce code est nickel alors chapeau bas môsieur
10/10
cs_ONC Messages postés 8 Date d'inscription lundi 19 mai 2003 Statut Membre Dernière intervention 28 septembre 2007 10
20 mai 2003 à 16:22
Je n'avais pas le SP5 mais je l'ai installé dès que j'ai vu que ca ne zippait pas depuis l'interpreteur.
Ca n'a rien changé.

Mais depuis que j'ai mis les 2 DLLs dans windowssystem, plus aucun pb même depuis l'interpreteur :)
cs_Klimero Messages postés 73 Date d'inscription lundi 2 avril 2001 Statut Membre Dernière intervention 12 janvier 2010
20 mai 2003 à 15:04
Peut-être un bug du compilateur VB ? J'ai déjà eu un cas où une application ne fonctionnait pas correctement si je la compilais avec l'option d'optimisation des performances. J'ai également déjà eu le cas d'une application qui ne fonctionnait qu'une fois compilée et pas depuis l'interpréteur.

As-tu installé le Service Pack 5 de visual studio ? Il corrige pas mal de bugs et pe que ca en fait parti. Si tu ne l'as pas tu peux le télécharger sur le site de micro$oft.
cs_ONC Messages postés 8 Date d'inscription lundi 19 mai 2003 Statut Membre Dernière intervention 28 septembre 2007 10
20 mai 2003 à 15:00
Mouarf :) J'ai trouvé :)

Et c'est peut etre la même chose qui est arrivé à MyC.

En fait, un exe lorsqu'on lui demande de charger des DLL regarde si elles ne sont pas dans son repertoire à lui, et si elles n'y sont pas regarde si elles sont pas dans le repertoire windowssystem

Or, quand on execute un prg depuis l'EDI de VB, ce n'est pas le rep où est situé le .vbp qui compte mais le rep ou est situé vb6.exe !

Il faut donc que les DLL soient dans le même rep que VB6 pour qu'il puisse les utiliser.

L'autre solution beaucoup plus sur c'est de les mettre dans windowssystem, ce dont je me refusais pour l'instant mais j'en ai bien été forcé pour eviter tous ces pb ;-)

Donc now ca roule :)
(ce qui est bizard c'est que ca ne l'empechait pas de lire le .zip... enfin passons)
cs_ONC Messages postés 8 Date d'inscription lundi 19 mai 2003 Statut Membre Dernière intervention 28 septembre 2007 10
20 mai 2003 à 14:53
Par contre, autant la décompression ne pose aucun pb, autant la compression refuse de me générer un .zip...

L'exe marche bien, mais si j'execute le projet dans VB ca ne marche pas.
Si je supprime ou renome l'exe et que je le regénere, le nouvel exe (au pasage plus petit) arrive bien à créer l'archive.

Vous me direz c'est pas trop grave.

Sauf qu'une appli un peu plus grosse ou je voulais l'utiliser n'arrive pas non plus à compresser, même si je lance l'exe...
cs_ONC Messages postés 8 Date d'inscription lundi 19 mai 2003 Statut Membre Dernière intervention 28 septembre 2007 10
19 mai 2003 à 19:25
Juste pour dire MERCI :) Ca me rend vraiment bien des services :)
pcpunch Messages postés 1243 Date d'inscription mardi 7 mai 2002 Statut Membre Dernière intervention 18 février 2019 5
2 avril 2003 à 12:55
ok dsl, j avais pas vu merci
cs_Klimero Messages postés 73 Date d'inscription lundi 2 avril 2001 Statut Membre Dernière intervention 12 janvier 2010
2 avril 2003 à 11:04
Il y a des exemples d'utilisation en haut de cette article, faut se renseigner avant de poser des questions...
pcpunch Messages postés 1243 Date d'inscription mardi 7 mai 2002 Statut Membre Dernière intervention 18 février 2019 5
1 avril 2003 à 18:09
je n arrive pas avoir que les fichier ds le zip, il y a le chemin aussi qd je compress... COmment faire svp!!!
cs_Klimero Messages postés 73 Date d'inscription lundi 2 avril 2001 Statut Membre Dernière intervention 12 janvier 2010
17 févr. 2003 à 11:10
Comment ca aucun commentaire ??!!! Chaque variable d'instance est décrite et il y a une description de chaque fonction avec les valeurs de retour possibles. Seules les propriétés ne sont pas commentées car je trouve qu'elles ont un nom suffisament explicite. Si tu veux parler des attributs de procédure, effectivement je ne me suis pas amusé à les remplir. Par contre il y a une mini-doc en haut de cette page...
cs_doggy Messages postés 50 Date d'inscription jeudi 26 décembre 2002 Statut Membre Dernière intervention 12 janvier 2004
15 févr. 2003 à 08:40
Excellent excepté les commentaires du code :-(
Très dommage car la source est très bien, mais il n'y a aucun commentaire ... 7/10
cs_Klimero Messages postés 73 Date d'inscription lundi 2 avril 2001 Statut Membre Dernière intervention 12 janvier 2010
21 janv. 2003 à 14:34
est-tu sûr d'avoir ajouté les fichiers nécessaire à ton projet ? Quel est exactement l'erreur ?
cs_MyC Messages postés 94 Date d'inscription lundi 23 septembre 2002 Statut Membre Dernière intervention 22 avril 2003
21 janv. 2003 à 12:16
Salut,

Je ne comprends pas pq, mais chez moi l'exe fonctionne très bien mais pas la source.

Help, please !
cs_TheDjinn Messages postés 10 Date d'inscription dimanche 5 mai 2002 Statut Membre Dernière intervention 10 novembre 2002
30 oct. 2002 à 13:06
lut j'ai pas tester mais j'imagine kil est tres bien, moi je cherche un tar/untar
si tu a une idee de la ou je peut trouve un exemple ca serai cool
merci.
bon code ;)
cs_Klimero Messages postés 73 Date d'inscription lundi 2 avril 2001 Statut Membre Dernière intervention 12 janvier 2010
24 oct. 2002 à 15:48
Coucou,

hey non il n'est pas possible de découper le zip créé en plusieurs fichiers en utilisant ce code. Tout comme il n'est pas possible de le faire en utilisant Winzip (enfin il me semble bien). Par contre tu peux écrire une fonction de découpage/recollage de fichiers, comme ca tu peux découper l'archive une fois créée, la copier sur disquettes et la recoller ailleurs pour la décompresser.

Et voilou ;)
orsam Messages postés 28 Date d'inscription jeudi 7 décembre 2000 Statut Membre Dernière intervention 22 octobre 2007
24 oct. 2002 à 12:45
Bonjour,

Bon, cette source et genial, et comme le dit olid, Adieu Commandes DOS.
Cependant, j'ai un petit probleme... Y a t'il la possibilité (comme les compressions sous dos) des créer des fichiers ZIP avec une taille de 1.44 Mo ? pour une sauvegarde/Restauration sur disquettes ???

Merci
Orsam@free.fr
cs_olid Messages postés 296 Date d'inscription lundi 2 septembre 2002 Statut Membre Dernière intervention 28 janvier 2008
6 sept. 2002 à 17:58
:op zavais réussi à faire zà par moi-même hier soir, et zetais revenu pour annuler ma question.

Mais, merzi qd même...etpis zà zervira petre à dautre.

De plus, pour la liste du contenu du Zip n'affiche pas le chemin des fichiers, iil fô modifier la routine de remplissage en utilisant la fonction ci-dessous :

Public Function NomDossierSansURL(URL)

Dim Resultat
Resultat = URL
If (Right$(Resultat, 1) = "/") Then
Resultat = Left$(Resultat, Len(Resultat) - 1)
End If
Do While (InStr(Resultat, "/") <> 0)
Resultat = Right$(Resultat, Len(Resultat) - InStr(Resultat, "/"))
Loop
NomDossierSansURL = Resultat

End Function

Pour l'anecdote, cette routine a buggée pendant DEUX heures parceque c'est les Slash quil faut détecter, et NON les anti-slash. (Merzi Klimero pour la blague :op )

Bonne continuation.

NB: je mettrais mon source en ligne dés que possible sous l'intitulé Skins pour Yahoo! Messenger
cs_Klimero Messages postés 73 Date d'inscription lundi 2 avril 2001 Statut Membre Dernière intervention 12 janvier 2010
5 sept. 2002 à 14:52
Salut,

En fait il n'y a pas grand chose à modifier à la classe pour pouvoir décompresser les fichiers sans tenir compte des répertoires relatifs. Il suffit de modifier une option passée à la dll : uHonorDirectories

Dans la fonction Decompress, met
uHonorDirectories = 0
à la place de
uHonorDirectories = 1
et le tour est joué !

le mieux est d'ajouter un paramètre à la fonction dans le genre :

Public Function Decompress(sTargetRoot As String, Optional iName As String, Optional iHonorDir As Boolean = True) As Long
...
uHonorDirectories = iHonorDir

Ouala, heureux que ca te plaise ! ;)
cs_olid Messages postés 296 Date d'inscription lundi 2 septembre 2002 Statut Membre Dernière intervention 28 janvier 2008
4 sept. 2002 à 17:53
Bonzour,

Ce source est vraiment extra, et me rend sacrément service (Adieu ligne de commande DOS :o) mais il me confronte à un autre problème :

Je m'en sert dans un prog d'installation de skins empacketés dans un zip. Mais, de nombreux skins (.zip) fait par les utilisateurs contiennent les infos répertoires des fichiers compressés. Et, quand j'utilise cette classe, la structure des répertoires d'origines est restaurée. Du coup, les skins sont mal installés. J'ai essayé de corriger çà en bidouillant le chemin de décompression, mais il y a des skins où les fichiers n'ont pas le même dossier d'origine :o((((

Et, je n'arrive pas comprendre comment on peut modifier la classe pour résoudre ce problème, et comme j'ai pas C++ j'ai l'impression que je me suis lançé dans un chemin de croix :o((

Merci d'avance à toutes aides bénéfiques
cs_Klimero Messages postés 73 Date d'inscription lundi 2 avril 2001 Statut Membre Dernière intervention 12 janvier 2010
16 juil. 2002 à 11:43
Ce fichier contient les informations sur la dernière version des dlls zip : ftp://ftp.info-zip.org/pub/infozip/doc/WHERE

Plus d'info sur : http://www.info-zip.org/pub/infozip/
Tu devrais trouver tout ce que tu as toujours voulu savoir sur le zip et mm plus en cherchant un peu.
cs_Alain Proviste Messages postés 908 Date d'inscription jeudi 26 juillet 2001 Statut Modérateur Dernière intervention 1 février 2015 2
16 juil. 2002 à 10:57
Ah oui les sources ça m'interesse pas mal...
Si tu peux dire où je peux les trouver ça m'interesse.
cs_Klimero Messages postés 73 Date d'inscription lundi 2 avril 2001 Statut Membre Dernière intervention 12 janvier 2010
16 juil. 2002 à 10:13
Content que ca te plaise : ) Si tu veux les sources des dlls je dois les avoir quelque part, c'est fait en Visual C++ et on peut les trouver sur le net, c'est open source et libre de droit.
cs_Alain Proviste Messages postés 908 Date d'inscription jeudi 26 juillet 2001 Statut Modérateur Dernière intervention 1 février 2015 2
15 juil. 2002 à 22:23
Ah oui une dernière chose pas de problème avec le réseau :

\Pii-300cWINDOWSBureauzip.zip a parfaitment fonctionné, malgré les doubles slashs...
cs_Alain Proviste Messages postés 908 Date d'inscription jeudi 26 juillet 2001 Statut Modérateur Dernière intervention 1 février 2015 2
15 juil. 2002 à 22:19
Ben ouais parce que chez moi le taux il restait à 5 toujours quoi que je fasse...
cs_Alain Proviste Messages postés 908 Date d'inscription jeudi 26 juillet 2001 Statut Modérateur Dernière intervention 1 février 2015 2
15 juil. 2002 à 22:19
Ouah Brava là je reste bouche-bée... Depuis que j'attendais ça... Franchement... Au début j'étais plutôt incrédule... Puis j'ai regardé... J'ai ouvert le fichier Zip du projet avec ce programme... Mais je me suis dit "il a dut prévoir le coup, en fait c't'une blague..." Puis j'ai ouvert un que je venais de télécharger et là, oh, ça focntionne ( sauf le taux de compréssion, j'ai du mal à voir à quoi il sert... )

Dommage quand même qu'il faille traîner ces deux dlls...

Sinon c'est parfait. 9/10 à cause des dlls.