Page 1 sur 1

[R] Utilisation de 7zip.au3

Posté : jeu. 08 avr. 2010 14:30
par peuchere83
Bonjour à tous,

Je suis entrain de reprendre mes anciens scripts de compression, en utilisant 7zip.au3.
Mais j'ai un fonctionnement bizarre et je voudrais donc votre avis dessus :
Lorsque j'utilise la commande _7ZIPExtract et que je lui passe en paramètre un répertoire, il me décompresse tous les fichiers zip qui y sont contenus et ce la de manière récursive !!!!

J'ai l'impression que le programme a été conçu pour fonctionner de cette manière : est ce le cas ?

Pour palier à ce "problème" je suis donc obliger de bidouiller avec un filelisttoarray et une boucle for afin de bloquer la récursivité.

Une autre solution ?
Cordialement

Re: [..] Utilisation de 7zip.au3

Posté : jeu. 08 avr. 2010 17:44
par Tlem
Quelle est la raison de passer en paramètre un répertoire alors que c'est un fichier qui est attendu ???

Re: [..] Utilisation de 7zip.au3

Posté : jeu. 08 avr. 2010 17:55
par jbnh

Re: [..] Utilisation de 7zip.au3

Posté : lun. 12 avr. 2010 13:44
par peuchere83
Bonjour,

Ce que je cherche à faire est tout simple (je pense mais je n'y arrive pas pour l'instant :oops: ) :
Décompresser tous fichiers zip se trouvant dans un répertoire soit au même endroit, soit dans un répertoire temporaire mais en respectant l'arborescence.

Cordialement

Re: [..] Utilisation de 7zip.au3

Posté : lun. 12 avr. 2010 13:55
par Tlem
Haaaaa, je comprend mieux maintenant ...

En fait, vous utilisez la mauvaise fonction.
_7ZIPExtract() ne prend pas en compte l'arborescence, mais _7ZIPExtractEx() oui. ;)

Bon code. :roll:

Re: [..] Utilisation de 7zip.au3

Posté : lun. 12 avr. 2010 15:15
par peuchere83
Merci Tlem,


mais malheureusement je ne trouve pas la solution. J'avais déjà essayé cette fonction et quoi que je choisisse comme option, l'arborescence n'est pas recréé.

Franchement là, je suis largué.

Re: [..] Utilisation de 7zip.au3

Posté : lun. 12 avr. 2010 15:23
par Tlem
J'utilise cette fonction pour le Pack AutoIt-FR, donc c'est sur et certain cela fonctionne.

Jetez un oeil sur le code pour voir comment je l'utilise. :wink:

Re: [..] Utilisation de 7zip.au3

Posté : lun. 12 avr. 2010 17:25
par peuchere83
Désolé Tlem d'être si lourd, (idem pour jbnh)

mais je viens de résoudre mon problème en une 20 aine de lignes de code !!! :oops:
Je pense qu'il est possible de faire mieux. C'est pour cela que j'insiste :mrgreen:
Là ou je sèche, c'est sur la création de l'arborescence :
J'ai un répertoire parent qui contient x répertoires qui contiennent chacun x fichiers zip.
Je souhaite recréer l'arborescence dans un fichier temporaire qui contiendra tous les fichiers zip (en respectant l'arborescence du parent).

J'ai regardé et adapté ton code du pack autoit mais pas mieux.

Cordialement.

Re: [..] Utilisation de 7zip.au3

Posté : lun. 12 avr. 2010 20:57
par Tlem
peuchere83 a écrit :Désolé Tlem d'être si lourd
Je confirme, car un coup vous parlez de décompression et un autre coup de compression ... :shock:

Il serait souhaitable que vous détaillez très exactement ce que vous cherchez à faire.

Pour compresser des fichiers et des répertoires, c'est la fonction _7ZipAdd() avec le paramètre de récursivité si vous souhaitez les sous répertoires.

Pour extraire les fichiers et répertoires contenu dans une archive Zip ou 7z vous devez utiliser la fonction _7ZIPExtractEx() avec le paramètre de récursivité, si vous souhaitez extraire avec l'arborescence.

Je vous conseil vivement de regarder le fichier 7zip.au3 pour voir les paramètres des fonctions que vous pouvez utiliser, ainsi que les exemples fournit dans le fichier joint à ce message : http://www.autoitscript.fr/forum/viewto ... 558#p11558

Re: [..] Utilisation de 7zip.au3

Posté : mar. 13 avr. 2010 09:11
par peuchere83
Pardon !!!!!!!!!!

Je parle uniquement de décompression.
J'ai du mal m'exprimer depuis le début car ce que je cherche à faire c'est de la décompression récursive :
de décompresser tous les fichiers zip d'une arborescence en recréant cette structure de répertoire.

J'ai pensé à tort que _7ZIPExtractEx() permettait cela, or pas du tout. Il créé l'arborescence contenue dans le fichier zip. Pour le reste (création de la structure de répertoire) il faut donc le coder.

En résumé, je me suis perdu tout seul comme un grand.

Vraiment désolé pour la perte de temps. :oops:

Re: [R] Utilisation de 7zip.au3

Posté : mar. 13 avr. 2010 21:47
par Tlem
Alors là, franchement, c'est de pire en pire ...
Je reprend votre premier message :
Lorsque j'utilise la commande _7ZIPExtract et que je lui passe en paramètre un répertoire, il me décompresse tous les fichiers zip qui y sont contenus et ce la de manière récursive !!!!

J'ai l'impression que le programme a été conçu pour fonctionner de cette manière : est ce le cas ?

Pour palier à ce "problème" je suis donc obliger de bidouiller avec un filelisttoarray et une boucle for afin de bloquer la récursivité.
et dans votre dernier message :
J'ai du mal m'exprimer depuis le début car ce que je cherche à faire c'est de la décompression récursive :
de décompresser tous les fichiers zip d'une arborescence en recréant cette structure de répertoire.
Alors si je lit bien, dans le premier vous ne voulez pas et dans le dernier message, vous voulez !!! :shock:

Franchement, si vous donniez un exemple d'archive et le résultat que vous recherchez, cela éviterait cette communication stérile et cette perte de temps totalement inutile ...

Re: [R] Utilisation de 7zip.au3

Posté : mer. 14 avr. 2010 13:54
par peuchere83
En effet Tlem vous avez raison, je n'ai pas été clair (surtout dans mon 1er post).
Lorsque j'utilise la commande _7ZIPExtract et que je lui passe en paramètre un répertoire, il me décompresse tous les fichiers zip qui y sont contenus et ce la de manière récursive !!!!

J'ai l'impression que le programme a été conçu pour fonctionner de cette manière : est ce le cas ?

Pour palier à ce "problème" je suis donc obliger de bidouiller avec un filelisttoarray et une boucle for afin de bloquer la récursivité.
Je que je voulais dire dans mon 1er message, c'est :
lors de l'utilisation de _7ZIPExtract quand je lui passe en paramètre un répertoire, il me décompresse tous les fichiers contenus même dans les sous répertoires mais sans me recréer l'arborescence (je ne parle pas de l'arborescence contenu dans les fichiers zip mais celle contenant les fichiers zip).
J'ai testé _7ZIPExtractEx et j'obtiens le même résultat.
J'ai donc du créer une fonction pour palier à ce manque.

J'espère avoir été plus clair car je suis vraiment navré de vous avoir fait perdre votre temps. :oops:

Je mettrais dorénavant du code pour faciliter la compréhension.

Cordialement.

Re: [R] Utilisation de 7zip.au3

Posté : mer. 14 avr. 2010 19:02
par Tlem
Vous n'expliquez toujours pas ce que vous cherchez à faire. :cry:

En relisant plusieurs fois les messages, j'en déduit que vous cherchez à extraire des fichiers zip contenus dans une arborescence et que les fichiers extraits reste dans le dossier d'origine du fichier zip. 8)

Si c'est bien ce que vous cherchez à faire, la logique voudrait que vous utilisiez une fonction de 'scan' de votre arborescence, à la recherche des fichiers zip contenu (ceci devrait faire l'affaire : http://www.autoitscript.fr/forum/viewto ... f=21&t=479 ).

Ensuite une simple boucle de lecture du tableau résultant et l'utilisation conjointe de la fonction _7ZIPExtract() ou _7ZIPExtractEx() (selon si vous avez besoin de l'arborescence contenue dans le fichier zip) suffiront pour extraire chaque fichier zip dans le dossier d'origine de ce dernier.
Bon, bien sur il faudra jongler avec l'utilisation des dossiers, mais cela ne devrait pas représenter une trop grande difficulté. ;)