Page 1 sur 1

[R] Copie image JPG avec arborescence

Posté : lun. 04 mai 2015 10:47
par Linox
Bonjour ... m'étant lacer dans l'ART de l'image ... je n'ai plus trop toucher au script depuis plusieurs années ... et voilà que j'ai besoin d'un script AutoIT particulier.
Donc je voudrais un script qui ouvre une boite de dialogue pour sélectionner un dossier source sur mon disque dur ... puis une autre boite de dialogue pour sélectionner un dossier source ... donc le script copierait toute l'arborescence des dossiers du dossier cible ... dans une dossier créer par le script nommé "Copie_JoHoK" dans le dossier cible ... ainsi le script copierait toute les images .JPG et .jpg en respectant l'arborescence.
Quelque aurait-il un peut de temps à m'accorder pour ce script ?

Re: [..] Copie image JPG avec arborescence

Posté : lun. 04 mai 2015 15:40
par jbnh
source, source... cible, cible... source cible, on s'y perd... merci de reformuler plus clairement... votre demande

Re: [..] Copie image JPG avec arborescence

Posté : lun. 04 mai 2015 15:47
par Linox
Le dossier source ... c'est celui ou se trouve les images ... le dossier cible celui on il fait la copie ;)

Re: [..] Copie image JPG avec arborescence

Posté : lun. 04 mai 2015 15:50
par jbnh
Oui merci, mais :
Donc je voudrais un script qui ouvre une boite de dialogue pour sélectionner un dossier source sur mon disque dur ... puis une autre boite de dialogue pour sélectionner un dossier source
donc le script copierait toute l'arborescence des dossiers du dossier cible ... dans une dossier créer par le script nommé "Copie_JoHoK" dans le dossier cible
Space tout ça...

Re: [..] Copie image JPG avec arborescence

Posté : lun. 04 mai 2015 16:00
par Linox
arf mille excuses ... je rectifi

Bonjour ... m'étant lacer dans l'ART de l'image ... je n'ai plus trop toucher au script depuis plusieurs années ... et voilà que j'ai besoin d'un script AutoIT particulier.
Donc je voudrais un script qui ouvre une boite de dialogue pour sélectionner un dossier source sur mon disque dur ... puis une autre boite de dialogue pour sélectionner un dossier cible... donc le script copierait toute l'arborescence des dossiers du dossier source ... dans une dossier créer par le script nommé "Copie_JoHoK" dans le dossier cible ... ainsi le script copierait toute les images .JPG et .jpg en respectant l'arborescence.
Quelque aurait-il un peut de temps à m'accorder pour ce script ?

Re: [..] Copie image JPG avec arborescence

Posté : lun. 04 mai 2015 16:34
par jbnh
Voila qui est plus clair :)

Ceci devrait faire l'affaire :

Code : Tout sélectionner

#include <RecFileListToArray.au3>
#include <Array.au3>


Local $sRoot = FileSelectFolder("Selectionner dossier source", "")
If @error Then
    MsgBox($MB_SYSTEMMODAL, "", "No folder was selected.")
    exit
Endif

Local $sDest = FileSelectFolder("Selectionner dossier destination", "")
If @error Then
    MsgBox($MB_SYSTEMMODAL, "", "No folder was selected.")
    exit
Endif
    
$aList = _RecFileListToArray($sRoot, "*.txt", 1, 1)

For $i = 1 To $aList[0]
    FileCopy($sRoot &"\"& $aList[$i], $sDest &"\Copie_JoHoK\"& $aList[$i], 8)
Next

Re: [..] Copie image JPG avec arborescence

Posté : lun. 04 mai 2015 16:43
par Linox
Merci ;)

Le script ne copie que les fichier à la racine du dossier ... il ne recréer pas l'arborescence des dossier

Re: [..] Copie image JPG avec arborescence

Posté : lun. 04 mai 2015 16:52
par jbnh
Etrange, chez moi bien.

Fait un _arraydisplay de $aList pour voir si la matrice contient l'arborescence des fichiers

Re: [..] Copie image JPG avec arborescence

Posté : lun. 04 mai 2015 17:01
par Linox
Il ne la contient pas

Re: [..] Copie image JPG avec arborescence

Posté : lun. 04 mai 2015 17:05
par jbnh
Je pense que la fonction que je t'ai donnée est dépréciée, essaye plutôt ceci :

Code : Tout sélectionner

#include <File.au3>


Local $sRoot = FileSelectFolder("Selectionner dossier source", "")
If @error Then
    MsgBox($MB_SYSTEMMODAL, "", "No folder was selected.")
    exit
Endif

Local $sDest = FileSelectFolder("Selectionner dossier destination", "")
If @error Then
    MsgBox($MB_SYSTEMMODAL, "", "No folder was selected.")
    exit
Endif
    
$aList = _FileListToArrayRec($sRoot, "*.txt", 1, 1)
_arraydisplay($aList)
For $i = 1 To $aList[0]
    FileCopy($sRoot &"\"& $aList[$i], $sDest &"\Copie_JoHoK\"& $aList[$i], 8)
Next

Re: [..] Copie image JPG avec arborescence

Posté : lun. 04 mai 2015 17:11
par Linox
Je ne trouve pas File.au3

Re: [..] Copie image JPG avec arborescence

Posté : lun. 04 mai 2015 17:14
par jbnh
Il est contenu dans l'installation autoit de base.

Dans la négative, mettez à jour votre autoit

Re: [..] Copie image JPG avec arborescence

Posté : lun. 04 mai 2015 17:18
par Linox
Merci .. j'ai mis à jour ... et le script fonctionne parfaitement ;)

Re: [..] Copie image JPG avec arborescence

Posté : lun. 04 mai 2015 17:19
par Linox
Juste je voudrais copier deux type d'extension ... que dois-je ajouter ?

Re: [..] Copie image JPG avec arborescence

Posté : lun. 04 mai 2015 17:37
par jbnh
Je vous laisse lire la documentation sur la fonction _FileListToArrayRec pour que tu puisse modifier à ta guise :)

Je passe le sujet en resolu

Re: [R] Copie image JPG avec arborescence

Posté : lun. 04 mai 2015 17:49
par Linox
ok merci encore

Re: [R] Copie image JPG avec arborescence

Posté : dim. 10 mai 2015 19:09
par mdanielm
Je soumets ma solution à vos critiques:
► Afficher le texte

Re: [R] Copie image JPG avec arborescence

Posté : dim. 10 mai 2015 21:44
par jguinch
Pourquoi tu n'as pas utilisé _FileListToArrayRec ?

Re: [R] Copie image JPG avec arborescence

Posté : lun. 11 mai 2015 10:47
par mdanielm
Je n'ai pas voulu utiliser un outil puissant pour un problème relativement simple.
Je n'utilise aucune UDF.
J'ai immédiatement pensé à xcopy de notre vieux dos.

Je suis franchement contre le conseil: "il ne faut pas réinventer la roue".
Je conseille de la réinventer aussi souvent que possible pour retenir les algorithmes qui resserviront dans d'autres contextes.
Un peu comme en math on demande de retenir la démonstration des théorèmes!

Prenons un exemple: Chercher la première occurrence d'un élément d'un tableau.
Cette fonction existe surement mais si je veux chercher un enregistrement dans un gros fichier, l'algorithme est le même mais la fonction sera inutilisable.

Quel est cet algo SI on s'impose les règles de base de LISIBILITE d'un programme (que je n'ai jamais vues sur ce site): à savoir entre autres que si j'utilise une boucle for je dois boucler par principe le nombre de fois annoncé et m'interdire une sortie intempestive sinon le lecteur sera trompé. La boucle while est faite pour sortir sur une condition.
"Y est" ou "n'y est pas" sera logiquement représenté par un booléen...
je vous laisse réfléchir!

Cordialement.