[R] Recupere les fichier d'un dossier et sous dossier .

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
hiplorenzo
Niveau 1
Niveau 1
Messages : 13
Enregistré le : lun. 10 nov. 2014 18:46
Status : Hors ligne

[R] Recupere les fichier d'un dossier et sous dossier .

#1

Message par hiplorenzo »

Bjr, c'est mon premier post dans le fofo espérant bien que je trouverai une solution
voila ,je veux récupéré tous les fichier ".doc" dans les dossiers et sous dossiers dans le path est @desktopdir sachant que je connais pas le nom des dossier et sous dossier exacte


merci d'avance :D

ce code récupère que les fichier sur le bureau

Code : Tout sélectionner

#include<Array.au3>
#include"RecFileListToArray.au3"
Global $a_files,$i
Global $sPath=@DesktopDir
$ar_Array = _RecFileListToArray ($sPath, "*.odt;*.doc", 0, 0, 2, 1, "Temp")
$a_filest=_ArrayDisplay($ar_Array, "Liste fichier")  ; Ceci est facultatif, c'est juste pour afficher la liste des fichiers.
For $i = 1 To $a_files[0]
    MsgBox(0,"",$a_files[$i])
    Next
Modifié en dernier par hiplorenzo le mer. 19 nov. 2014 14:34, modifié 1 fois.
Avatar du membre
jguinch
Modérateur
Modérateur
Messages : 2515
Enregistré le : lun. 14 févr. 2011 22:12
Status : Hors ligne

Re: RECUPERe LES FICHIER .DOC DANS DOSSIER et SOUS DOSSIER

#2

Message par jguinch »

Merci de modifier le sujet du message afin qu'il respecte les règles de présentation d'un message.
Le script, ça fait gagner beaucoup de temps... à condition d'en avoir beaucoup devant soi !
Avatar du membre
orax
Modérateur
Modérateur
Messages : 1479
Enregistré le : lun. 23 mars 2009 04:50
Localisation : ::1
Status : Hors ligne

Re: [..] Recupere les fichier d'un dossier et sous dossier .

#3

Message par orax »

_RecFileListToArray est déconseillé. Il est conseillé d'utiliser _FileListToArrayRec à la place.
Il y a aussi un truc à faire attention : un fichier qui apparaît sur le bureau n'est pas forcément dans @DesktopDir, il peut se trouver dans @DesktopCommonDir. @DesktopCommonDir étant le répertoire "C:\Users\Public\Desktop".

Code : Tout sélectionner

#include <Array.au3>
#include <File.au3>
#include <FileConstants.au3>
Global $a_files, $i
Global $sPath = @DesktopDir
$ar_Array = _FileListToArrayRec($sPath, "*.odt;*.doc", $FLTAR_FILES, $FLTAR_RECUR, $FLTAR_FASTSORT, $FLTAR_RELPATH)
_ArrayDisplay($ar_Array, "Liste fichier") ; Ceci est facultatif, c'est juste pour afficher la liste des fichiers.
For $i = 1 To $ar_Array[0]
    MsgBox(0, "", $ar_Array[$i])
Next
De petits détails peuvent faire toute la différence. — Quand la boule de neige commence à rouler… poussez-la. (Columbo)
hiplorenzo
Niveau 1
Niveau 1
Messages : 13
Enregistré le : lun. 10 nov. 2014 18:46
Status : Hors ligne

Re: [..] Recupere les fichier d'un dossier et sous dossier .

#4

Message par hiplorenzo »

orax a écrit :_RecFileListToArray est déconseillé. Il est conseillé d'utiliser _FileListToArrayRec à la place.
Il y a aussi un truc à faire attention : un fichier qui apparaît sur le bureau n'est pas forcément dans @DesktopDir, il peut se trouver dans @DesktopCommonDir. @DesktopCommonDir étant le répertoire "C:\Users\Public\Desktop".

Code : Tout sélectionner

#include <Array.au3>
#include <File.au3>
#include <FileConstants.au3>
Global $a_files, $i
Global $sPath = @DesktopDir
$ar_Array = _FileListToArrayRec($sPath, "*.odt;*.doc", $FLTAR_FILES, $FLTAR_RECUR, $FLTAR_FASTSORT, $FLTAR_RELPATH)
_ArrayDisplay($ar_Array, "Liste fichier") ; Ceci est facultatif, c'est juste pour afficher la liste des fichiers.
For $i = 1 To $ar_Array[0]
    MsgBox(0, "", $ar_Array[$i])
Next

merci orax infiniment 8)
hiplorenzo
Niveau 1
Niveau 1
Messages : 13
Enregistré le : lun. 10 nov. 2014 18:46
Status : Hors ligne

Re: [..] Recupere les fichier d'un dossier et sous dossier .

#5

Message par hiplorenzo »

ya t'il un autre monyen de les récupéré fichier par fichier dans une variable non un tableau

:?:
Hugues
Niveau 8
Niveau 8
Messages : 597
Enregistré le : ven. 21 sept. 2012 18:12
Status : Hors ligne

Re: [..] Recupere les fichier d'un dossier et sous dossier .

#6

Message par Hugues »

Bonjour,

Avec comme Orax:

Code : Tout sélectionner

For $i = 1 To $ar_Array[0]
    MsgBox(0, "", $ar_Array[$i])
Next
 
ou

Code : Tout sélectionner

For $i = 1 To $ar_Array[0]
        $toto &= $ar_Array[$i] & "; "
 Next
 
hiplorenzo
Niveau 1
Niveau 1
Messages : 13
Enregistré le : lun. 10 nov. 2014 18:46
Status : Hors ligne

Re: [..] Recupere les fichier d'un dossier et sous dossier .

#7

Message par hiplorenzo »

thanks frere :wink: :mrgreen: :shock:
hiplorenzo
Niveau 1
Niveau 1
Messages : 13
Enregistré le : lun. 10 nov. 2014 18:46
Status : Hors ligne

Re: [..] Recupere les fichier d'un dossier et sous dossier .

#8

Message par hiplorenzo »

:( hm J'arrive pas a supprime les fichier recupere avec la fonction fileDelete ni FileRecycle y'a t'il une solution ????
Avatar du membre
orax
Modérateur
Modérateur
Messages : 1479
Enregistré le : lun. 23 mars 2009 04:50
Localisation : ::1
Status : Hors ligne

Re: [..] Recupere les fichier d'un dossier et sous dossier .

#9

Message par orax »

Montre ton code déjà, pour voir ce qui cloche.
De petits détails peuvent faire toute la différence. — Quand la boule de neige commence à rouler… poussez-la. (Columbo)
hiplorenzo
Niveau 1
Niveau 1
Messages : 13
Enregistré le : lun. 10 nov. 2014 18:46
Status : Hors ligne

Re: [..] Recupere les fichier d'un dossier et sous dossier .

#10

Message par hiplorenzo »

hi Orax, je veux supprime tous les fichier trouvé mais sa fonctionne pas

Code : Tout sélectionner

#include <Array.au3>
#include <File.au3>
#include <FileConstants.au3>
Global $ar_Array, $i,$files
Global $sPath = @DesktopDir
$ar_Array = _FileListToArrayRec($sPath, "*.odt;*.doc", $FLTAR_FILES, $FLTAR_RECUR, $FLTAR_FASTSORT, $FLTAR_RELPATH)
_ArrayDisplay($ar_Array, "Liste fichier") ; Ceci est facultatif, c'est juste pour afficher la liste des fichiers.
For $i = 1 To $ar_Array[0]
    MsgBox(0, "", $ar_Array[$i])
    $files= $ar_Array[$i]
    FileDelete($files)
Next
Avatar du membre
orax
Modérateur
Modérateur
Messages : 1479
Enregistré le : lun. 23 mars 2009 04:50
Localisation : ::1
Status : Hors ligne

Re: [..] Recupere les fichier d'un dossier et sous dossier .

#11

Message par orax »

C'est normal, le chemin des fichiers trouvés est relatif par rapport au bureau. Par exemple, "fichier.doc" au lieu de de "C:\Users\truc\Desktop\fichier.doc".
Une solution est de remplacer $FLTAR_RELPATH par $FLTAR_FULLPATH :

Code : Tout sélectionner

$ar_Array = _FileListToArrayRec($sPath, "*.odt;*.doc", $FLTAR_FILES, $FLTAR_RECUR, $FLTAR_FASTSORT, $FLTAR_FULLPATH)
De petits détails peuvent faire toute la différence. — Quand la boule de neige commence à rouler… poussez-la. (Columbo)
hiplorenzo
Niveau 1
Niveau 1
Messages : 13
Enregistré le : lun. 10 nov. 2014 18:46
Status : Hors ligne

Re: [R] Recupere les fichier d'un dossier et sous dossier .

#12

Message par hiplorenzo »

oh cool sa marche ,faux jouer sur les paramètre de la fonction j'ai pas fait attention :P

merci orax une autre fois :mrgreen:
Avatar du membre
jguinch
Modérateur
Modérateur
Messages : 2515
Enregistré le : lun. 14 févr. 2011 22:12
Status : Hors ligne

Re: [..] Recupere les fichier d'un dossier et sous dossier .

#13

Message par jguinch »

@hiplorenzo, la balise [R] se met dans le titre du premier message. C'est modifié. :wink:
Le script, ça fait gagner beaucoup de temps... à condition d'en avoir beaucoup devant soi !
hiplorenzo
Niveau 1
Niveau 1
Messages : 13
Enregistré le : lun. 10 nov. 2014 18:46
Status : Hors ligne

Re: [R] Recupere les fichier d'un dossier et sous dossier .

#14

Message par hiplorenzo »

Bjr, je cherche une autre solution équivalent a mon code "moin du code"

j'ai ajouté une liste de direction a parcourir pour trouve les fichier .doc

merci :mrgreen:

Code : Tout sélectionner

#include <Array.au3>
#include <File.au3>
#include <FileConstants.au3>
Global $ar_Array, $i, $files, $h = 2, $search

Global $direct[$h] = [@ScriptDir, @DesktopDir]

for $h=0 to 1
Switch $h

    Case 0
$search = $direct[$h]
        delete($search)


    Case 1
        $search = $direct[$h]
        delete($search)
EndSwitch

Next

Func delete($sPath)

    $ar_Array = _FileListToArrayRec($sPath, "*.odt;*.doc", $FLTAR_FILES, $FLTAR_RECUR, $FLTAR_FASTSORT, $FLTAR_FULLPATH)
    For $i = 1 To $ar_Array[0]
        $files = $ar_Array[$i]
        MsgBox(0, "", $files)
        FileDelete($files)
    Next

EndFunc   ;==>delete
 
le code fonctionne mais il me fait cette erreur je pense sa viens le fait qu'il trouve pas un fichier
ERREUR
(48) : ==> Subscript used on non-accessible variable.:
For $i = 1 To $ar_Arra[0]
For $i = 1 To $ar_Arra^ ERROR
Hugues
Niveau 8
Niveau 8
Messages : 597
Enregistré le : ven. 21 sept. 2012 18:12
Status : Hors ligne

Re: [R] Recupere les fichier d'un dossier et sous dossier .

#15

Message par Hugues »

Salut,

Tu mets une condition que si il ne trouve rien tu sors...

Code : Tout sélectionner

If @error Then
    msgbox(64, "", "No files found" & @CRLF & "Erreur: " & @extended)
    ;@extended retourne le code erreur
    ;1 - Path not found or invalid
    ;2 - Invalid Include parameter
    ;3 - Invalid Exclude parameter
    ;4 - Invalid Exclude_Folders parameter
    ;5 - Invalid $iReturn parameter
    ;6 - Invalid $iRecur parameter
    ;7 - Invalid $iSort parameter
    ;8 - Invalid $iReturnPath parameter
    ;9 - No files/folders found
    Exit
EndIf
 
hiplorenzo
Niveau 1
Niveau 1
Messages : 13
Enregistré le : lun. 10 nov. 2014 18:46
Status : Hors ligne

Re: [R] Recupere les fichier d'un dossier et sous dossier .

#16

Message par hiplorenzo »

merci Hugues sa marche ,si quelqu’un arrive a réduire le code avec une autre methode qu'il poste ça methode et merci pour tous le monde :)

Code : Tout sélectionner

#include <Array.au3>
#include <File.au3>
#include <FileConstants.au3>
Global $ar_Array, $i, $files, $h = 2, $search

Global $direct[$h] = [@ScriptDir, @DesktopDir]

for $h=0 to 1
Switch $h

    Case 0
$search = $direct[$h]
        delete($search)


    Case 1
        $search = $direct[$h]
        delete($search)
EndSwitch

Next

Func delete($sPath)

    $ar_Array = _FileListToArrayRec($sPath, "*.odt;*.doc", $FLTAR_FILES, $FLTAR_RECUR, $FLTAR_FASTSORT, $FLTAR_FULLPATH)
If @error Then Exit
    For $i = 1 To $ar_Array[0]
        $files = $ar_Array[$i]
        MsgBox(0, "", $files)
        FileDelete($files)
    Next

EndFunc   ;==>delete
Répondre