Page 1 sur 1
[R] Recherche de fichiers et de dossiers ne marche pas
Posté : ven. 16 avr. 2010 08:23
par ricky
Func utilisé :
http://www.autoitscript.fr/forum/viewto ... f=21&t=479
Hello,
j'ai essayé d'utiliser ces fonctions et ça ne marche pas, j'ai rien à l'écran :
Code : Tout sélectionner
#include <Array.au3>
#include "FileListToArrayXT.au3"
$sPath = @ScriptDir & "\" & "PABX VoIP-Firmware\"
$sFindFile = "PrtVoip0.dll"
$ar_Array = _FileListToArrayXT ($sPath, $sFindFile, 2, 2, True, "", 2)
_ArrayDisplay($ar_Array, "Liste fichier") ; Ceci est facultatif, c'est juste pour afficher la liste des fichiers.
Qu'est-ce que je fais de faux?
FileListToArrayXT.au3 est dans le même dossier que l'exe.
J'ai essayé avec FileListToArrayXT et FileListToArrayEX, il n'y qu'avec le FileListToArray3 que ça marche :
Code : Tout sélectionner
$ar_Array = _FileListToArray3 ($sPath, $sFindFile, 0, 1, 0,"")
Dès que je mets un 2 au iflag, ben il ne marche plus...
J'utilise la dernière version d'Auto it.
Merci d'avance pour votre aide
Re: [..] Recherche de fichiers et de dossiers ne marche pas
Posté : ven. 16 avr. 2010 09:39
par jbnh
Bonjour,
Normal que ca affiche rien, dans le dernier argument vous avez mis "2"
$iRetFormat : Format de renvoi du résultat. 0 = Tableau base 0, 1 = Tableau base 1 (défaut), 2 = Chaîne (délimitée par "|")
Mettez donc 0 ou 1
Re: [..] Recherche de fichiers et de dossiers ne marche pas
Posté : ven. 16 avr. 2010 09:44
par ricky
Oui, pardon, mais même si je mets 0 ou 1, le problème est le même...
Re: [..] Recherche de fichiers et de dossiers ne marche pas
Posté : ven. 16 avr. 2010 09:46
par jbnh
Soit PrtVoip0.dll n'existe pas dans le dossier spécifié, soit vous avez la mauvaise version autoit (je vous conseille la dernière, la AutoIt v3.3.6.0).
Re: [..] Recherche de fichiers et de dossiers ne marche pas
Posté : ven. 16 avr. 2010 10:02
par ricky
Comme précisé dans le premier topic, j'ai la dernière version d'auto-it et le fichier dll existe, car si je ne mets pas le 2 dans iflag, je trouve 53 fichiers!!!!
Re: [..] Recherche de fichiers et de dossiers ne marche pas
Posté : ven. 16 avr. 2010 10:07
par jbnh
Donnez un screenshot des 53 fichiers, ca nous en apprendra peut-être plus.
Re: [..] Recherche de fichiers et de dossiers ne marche pas
Posté : ven. 16 avr. 2010 12:25
par ricky
Voilà ce que j'ai pour ce code :
Code : Tout sélectionner
$ar_Array = _FileListToArrayXT ($sPath, $sFindFile, 1, 1, True, "",1)
_ArrayDisplay($ar_Array, "Liste fichier") ; Ceci est facultatif, c'est juste pour afficher la liste des fichiers.
Si je mets un 2 au iflag, le programme ne marche plus...
Voici la copie d'écran :

Re: [..] Recherche de fichiers et de dossiers ne marche pas
Posté : ven. 16 avr. 2010 13:31
par matwachich
Re: [..] Recherche de fichiers et de dossiers ne marche pas
Posté : ven. 16 avr. 2010 13:40
par ricky
Oui et???
Re: [..] Recherche de fichiers et de dossiers ne marche pas
Posté : ven. 16 avr. 2010 14:46
par Tlem
Attention, car vous parlez du commutateur iflag et de la fonction
_FileListToArrayXT().
Or celle-ci n'a pas de commutateur iflag !!!
Je vais donc refaire la description des commutateurs de la commande
_FileListToArrayEx() et
_FileListToArrayXT().
- _FileListToArrayEx()
► Afficher le texte
Code : Tout sélectionner
_FileListToArrayEx($sPath, [$sFilter = '*.*', [$iFlag = 0, [$sExclude = '', [$iRecurse = False]]]])
$sPath doit correspondre au dossier racine à partir duquel vous voulez faire la recherche (cela peut être un chemin relatif par rapport au script).
$sFilter permet de spécifier quel fichier ou dossier vous recherchez. Vous pouvez utiliser pour le nom les caractères générique classiques tel que l'étoile ou le point d'interrogation. (*.au3 ou Script?.au3 ...)
$iFlag correspond au type de retour attendu par votre recherche.
Si vous stipulez 0, alors les dossier et fichiers correspondant au filtre de recherche vous seront renvoyés.
Si vous stipulez 1 alors seul les fichiers vous seront retournés.
Si vous stipulez 2 alors seul les dossiers vous seront retournés.
$sExclude permet de stipuler un masque d'exclusion.
Ce masque d'exclusion peut contenir des noms avec caractère générique et plusieurs exclusions séparées par le caractère '|' (Alt Gr + 6).
$iRecurse permet de stipuler si la recherche des fichiers et/ou dossiers doit ce faire de manière récursive (0=Non 1=Oui).
- _FileListToArrayXT()
► Afficher le texte
Code : Tout sélectionner
_FileListToArrayXT([$sPath = @ScriptDir, [$sFilter = "*", [$iRetItemType = 0, [$iRetPathType = 0, [$bRecursive = False, [$sExclude = "", [$iRetFormat = 1]]]]]]])
[b]$sPath[/b] doit correspondre au dossier racine à partir duquel vous voulez faire la recherche (cela peut être un chemin relatif par rapport au script).
[b]$sFilter[/b] permet de spécifier quel fichier ou dossier vous recherchez. Vous pouvez utiliser pour le nom les caractères générique classiques tel que l'étoile ou le point d'interrogation. (*.au3 ou Script?.au3 ...) et en plus de cette fonction de base, il est possible de rechercher plusieurs fichiers ou dossiers en séparent leur nom par un point virgule.
[b]$iRetItemType[/b] correspond au type de retour attendu par votre recherche.
Si vous stipulez 0, alors les dossier et fichiers correspondant au filtre de recherche vous seront renvoyés.
Si vous stipulez 1 alors seul les fichiers vous seront retournés.
Si vous stipulez 2 alors seul les dossiers vous seront retournés.
[b]$iRetPathType[/b] permet de stipuler si vous souhaitez ou non le chemin complet, le chemin relatif, ou juste le nom du fichier ou dossier.
(0 = Seulement le nom fichier/dossier (défaut), 1 = Chemin relatif, 2 = Chemin complet).
[b]$bRecursive[/b] permet de stipuler si la recherche des fichiers et/ou dossiers doit ce faire de manière récursive (False ou 0=Non True ou 1=Oui).
[b]$sExclude[/b] permet de stipuler un masque d'exclusion.
Ce masque d'exclusion peut contenir des noms avec caractère générique et plusieurs exclusions séparées par un point virgule.
[b]$iRetFormat[/b] permet de stipuler le type de retour renvoyé par la commande.
- 0 renverra un Tableau de base 0
- 1 renverra un Tableau de base 1 (défaut)
- 2 renverra une chaîne dont les résultats seront délimités par le caractère "|"
Évidement, je conseil vivement (si vous avez une version de AutoIt supérieure à la version v3.3.1.1) l'utilisation de la fonction
_FileListToArrayXT(), qui présente bien plus d'avantages tant en termes de rapidité que de fonctionnalités.

Re: [..] Recherche de fichiers et de dossiers ne marche pas
Posté : ven. 16 avr. 2010 15:15
par ricky
Là, j'ai juste l'impression d'être incompris.....
Je reprends :
Avec la fonction
_FileListToArrayEx() &
_FileListToArray3():
Quand je mets le $iFlag à 2, ça ne marche pas!
Avec la fonction
_FileListToArrayXT() :
Quand je mets :
$iRetItemType, si je mets 0 ou 1, j'ai la même chose qui ressort et si je mets 2, plus rien ne marche, pourquoi?
Cette citation viens : d'
ici
Et pour la 4ème fois, j'utilise la dernière version de auto-it (v3.3.6) livrée dans le pack
Pack_AutoIt-Fr v2.1.0!
Re: [..] Recherche de fichiers et de dossiers ne marche pas
Posté : ven. 16 avr. 2010 16:19
par Tlem
ricky a écrit :Là, j'ai juste l'impression d'être incompris.....
Je dirais plus simplement, que vous ne cherchez pas beaucoup à comprendre.
Si je reprend le code dont vous avez déjà parlez :
Code : Tout sélectionner
#include <Array.au3>
#include "FileListToArrayXT.au3"
$sPath = @ScriptDir & "\" & "PABX VoIP-Firmware\"
$sFindFile = "PrtVoip0.dll"
$ar_Array = _FileListToArrayXT ($sPath, $sFindFile, 2, 2, True, "", 2)
_ArrayDisplay($ar_Array, "Liste fichier")
Résumons le fonctionnement de la fonction telle que vous l'avez écrite :
$sPath = @ScriptDir & "\" & "PABX VoIP-Firmware\"
Vous lancez votre recherche dans le dossier
@ScriptDir & "\" & "PABX VoIP-Firmware\".
$sFilter = "PrtVoip0.dll"
Donc vous recherchez quelque chose portant le nom
PrtVoip0.dll.
$iRetItemType = 2
Vous spécifiez que ce que vous recherchez doit être un ou des dossiers.
$iRetPathType = 2
Signifie que vous voulez en retour le chemin complet.
$bRecursive = True
Permet une recherche récursive (c'est à dire dans les sous-dossiers).
$sExclude = ""
Signifie que vous ne souhaitez faire aucune exclusion.
$iRetFormat = 2
Signifie qu'au lieu d'un tableau classique, vous voulez une chaine de caractère contenant les résultats séparés par le caractère "|".
Voilà. J'espère que les parties en rouge vont vous ouvrir les yeux ...
Re: [..] Recherche de fichiers et de dossiers ne marche pas
Posté : lun. 19 avr. 2010 08:12
par ricky
Ah ok, je comprends mieux. ou est mon erreur. Normal que je n'aie rien, puisque aucun répertoire n'avait ce nom là. Merci beaucoup Tlem pour ton éclairage.