[R] Deplacer des fichiers de differentes extensions

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
Nostress
Niveau 1
Niveau 1
Messages : 3
Enregistré le : sam. 19 mars 2011 12:38
Status : Hors ligne

[R] Deplacer des fichiers de differentes extensions

#1

Message par Nostress »

Bonjour à tous , :)

Voila , je suis débutant et depuis quelques jour je me creuse la tête pour faire une chose qui est simple sous Dos mais qui me pose pb sous Autoit , j'ai cherché sur le forum et sur le net mais j'ai surement dû passer à coté.

Voila je souhaiterais déplacer ou copier des fichiers de différentes extensions comme par exemple tous les fichiers *.txt *.mp3 *.doc vers un autre répertoire , sachant que ceux-ci sont dans des sous-répertoires.

j'ai réussi à obtenir un début de résultat mais cela ne me copie que les fichiers de premier niveau je n'arrive pas à descendre dans les sous-répertoires .

Voici le scrip :
► Afficher le texte
D' après ce que j'ai pu comprendre

$recherche: variable qui a en mémoire tous les fichiers situé dans $source2 grace à FileListToArrayNT.au3
La boucle For renvoie le nombre de fichier qui se trouve a coté du script.
Mais pour le reste , comment faire pour récupérer les fichiers souhaités en profondeur.

Voila , si quelqu'un pouvait me mettre sur la voie, avec un indice ou une explication pas trop compliqué.

Merci d'avance


Bonne journée à tous
Modifié en dernier par Nostress le mar. 22 mars 2011 18:29, modifié 1 fois.
Avatar du membre
leoclem
Niveau 2
Niveau 2
Messages : 18
Enregistré le : mar. 18 janv. 2011 11:15
Status : Hors ligne

Re: [..] Deplacer des fichiers de differentes extensions

#2

Message par leoclem »

Bonjour,

En cherchant un peu sur le forum j'ai trouvé ce lien : http://www.autoitscript.fr/forum/viewto ... 531#p45531
où Tlem préconise l'utilisation de _RecFileListToArray qui est juste une version plus récente de _FileListToArrayNT.

J'ai fait un petit test chez moi de récupération :

Code : Tout sélectionner

#include <RecFileListToArray.au3>

$recherche = _RecFileListToArray("c:\toto","*.txt", 0, 1)
 
Le premier paramètre étant le répertoire à partir du quel on veut faire la recherche.
Le 2° est le filtre de recherche.
Le 3° permet d'indiquer si on veut le nom du fichier et le répertoire dans la variable $recherche (par défaut = 0), si on veut juste le nom du fichier (valeur 1) ou juste le nom du dossier (valeur 2).
Enfin le 4° paramètre est celui intéressant, à savoir la recherche dans les sous-dossiers :
- si la valeur = 0 (par défaut), pas de recherche dans les sous-dossiers du tout
- si la valeur = 1, alors recherche illimitée dans tous les sous-dossiers
- si la valeur = -X (entier négatif), alors l'entier va déterminer la profondeur de recherche dans les sous-dossiers.

(J'ai trouvé ces valeurs en lisant dans RecFileListToArray.au3)

La recherche au-dessus me retourne donc une array qui me liste dans tous les sous-dossiers de 'c:\toto\' tous les fichiers ayant pour extension '.txt' avec leur dossier respectif.

Donc le code ci-dessous :

Code : Tout sélectionner

#include <RecFileListToArray.au3>

$recherche = _RecFileListToArray("c:\toto","*.txt", 0, 1)

For $i = 1 To UBound($recherche) - 1
    ConsoleWrite($recherche[$i] & @CRLF)
Next

 
M'affiche dans la console :
>"C:\Program Files\AutoIt3\SciTE\..\autoit3.exe" /ErrorStdOut "C:\Users\Administrateur\Downloads\test.au3"
tartalonion - Copie.txt
tartalonion.txt
toto1\toto.txt
toto1\tata\tarteauxpommes.txt
>Exit code: 0 Time: 0.444
En espérant que cela ai pu être utile

Cordialement
GaRydelaMer
Niveau 7
Niveau 7
Messages : 450
Enregistré le : mer. 18 mars 2009 22:12
Localisation : Montpellier
Status : Hors ligne

Re: [..] Deplacer des fichiers de differentes extensions

#3

Message par GaRydelaMer »

Bonjour

http://www.autoitscript.fr/forum/viewto ... f=3&t=7150

Dans ce post j'ai mis aussi la possibilité d'avoir une fenêtre avec la progression de la copie, la fonction elle est basé sur la fonction _RecFileListToArray() pour obtenir un tableau des fichiers à copier
_MultiFile_Action_WithProgress($aSources, $sDestPath = "", $sFilter = "*.*", $bMove = False, $iRecurse = 0, $bOverWrite = True, $sPreFix = "!Copie", $sExclude = "")

$aSource = Soit un chemin ou un tableau
$sDestPath = L'endroit ou vont être copier les fichiers
$sFilter = liste des filtres "*.au3|*.txt" par exemple
$bMove = False pour de la copie, True pour un déplacement (à ce niveau la progression du déplacement d'un fichier individuel me pose encore un pb)
$iRecurse = recherche dans les sous dossier des fichiers qui corresponde au Filtre
$bOverWrite = True|False pour écraser les fichier existant dans la destination
$sPreFix = Libéllé qui sera ajouter au nom du ficher si $bOverWrite = False et qu'un fichier existe un peu comme sous windows qd on fait Ctrl-C, Ctrl-V sur un fichier dans l'explorateur sur un fichier
$sExclude = Permet d'exclure des fichier qui corresponde au filtre.
Nostress
Niveau 1
Niveau 1
Messages : 3
Enregistré le : sam. 19 mars 2011 12:38
Status : Hors ligne

Re: [..] Deplacer des fichiers de differentes extensions

#4

Message par Nostress »

Bonjour, :)

Merci pour les réponses je vais décortiquer tous ça avec soins .

de mon coté j'ai trouvé quelques infos qui m'ont permis en modifiant légèrement ce script d'obtenir ce que je voulais .

Liens : http://www.autoitscript.com/forum/topic ... ntry866048
Voici le script.
► Afficher le texte

Merci encore pour l'aide , c'est super :D


Bonne soirée
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11830
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [..] Deplacer des fichiers de differentes extensions

#5

Message par Tlem »

C'est sans doute une solution comme une autre. Par contre, d'un premier coup d'oeil, cette fonction ne semble pas optimisée pour la nouvelle version de AutoIt (utilisation de FileGetAttrib pour connaitre l'état dossier/fichier).

Si cette fonction vous convient tant au niveau de la fonctionnalité que des performances, alors pas de problème, sinon étudiez de prés les autres propositions qui vous ont été faites.

N'oubliez pas la balise [R] dans le titre de votre premier message si votre sujet est résolu.
Thierry

Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...

Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
Répondre