Page 1 sur 1

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

Posté : mer. 19 nov. 2014 12:26
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

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

Posté : mer. 19 nov. 2014 14:04
par jguinch
Merci de modifier le sujet du message afin qu'il respecte les règles de présentation d'un message.

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

Posté : mer. 19 nov. 2014 15:09
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

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

Posté : mer. 19 nov. 2014 19:21
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)

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

Posté : mer. 19 nov. 2014 20:33
par hiplorenzo
ya t'il un autre monyen de les récupéré fichier par fichier dans une variable non un tableau

:?:

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

Posté : mer. 19 nov. 2014 21:22
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
 

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

Posté : mer. 19 nov. 2014 21:39
par hiplorenzo
thanks frere :wink: :mrgreen: :shock:

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

Posté : mer. 19 nov. 2014 22:24
par hiplorenzo
:( hm J'arrive pas a supprime les fichier recupere avec la fonction fileDelete ni FileRecycle y'a t'il une solution ????

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

Posté : mer. 19 nov. 2014 23:10
par orax
Montre ton code déjà, pour voir ce qui cloche.

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

Posté : mer. 19 nov. 2014 23:29
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

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

Posté : mer. 19 nov. 2014 23:53
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)

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

Posté : jeu. 20 nov. 2014 00:10
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:

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

Posté : jeu. 20 nov. 2014 09:48
par jguinch
@hiplorenzo, la balise [R] se met dans le titre du premier message. C'est modifié. :wink:

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

Posté : jeu. 20 nov. 2014 14:09
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

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

Posté : jeu. 20 nov. 2014 14:58
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
 

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

Posté : jeu. 20 nov. 2014 15:26
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