Page 1 sur 1

[R] Recherche de dossiers contenant certains fichiers

Posté : mer. 14 déc. 2011 16:53
par shiroken
Bonjour,

Je recherche depuis plusieurs jours déjà un moyen de lister des répertoires (et leurs sous répertoires s'il y en a) contentant des fichiers .pdf et .tif.
J'ai testé l'ensemble des udf de type "_FileListtoArrayxx" cité par ce post : viewtopic.php?f=21&t=479 mais aucun ne me permet d'obtenir le résultat que je veux! (oui, d'accord, je suis un peu difficile :D )
J'ai même trouvé un _FileListToArrayNT7, mais ce n'est pas mieux!
Parmi ces UDF, j'élimine déjà ceux qui ne gèrent pas la récursivité, et ceux qui ne gèrent pas plusieurs filtres de recherche.
Pour ceux qui reste, s'ils fonctionnent tous quand on veut la liste des fichiers, tout ce gate quand je ne demande que la liste des dossiers concernés! Dans le meilleurs des cas, avec la commande "_ArrayDisplay" , j'ai un tableau vide qui apparaît à l'écran, et dans le pire des cas, rien du tout!

Si quelqu'un à une idée... Merci d'avance.

Re: [..] Recherche de dossiers contenant certains fichiers

Posté : mer. 14 déc. 2011 17:49
par Tlem
Cette fonction fait ce que vous demandez !

Re: [..] Recherche de dossiers contenant certains fichiers

Posté : mer. 14 déc. 2011 17:51
par jchd
Il doit bien exister une version francisée de RFLTA (RecFileListToArray) de notre bon ami le "perfide aviateur" Melba23. Sinon tu peut l'employer directement.

Re: [..] Recherche de dossiers contenant certains fichiers

Posté : mer. 14 déc. 2011 18:00
par shiroken
J'ai déjà testé ces 2 UDF, mais sans succès dans le cas d'une recherche avec "filtre", "récursivité" et "n'afficher que les dossiers concernés....
J'ai épluché le forum de long en large avant de poster ma demande.

Re: [..] Recherche de dossiers contenant certains fichiers

Posté : mer. 14 déc. 2011 19:53
par shiroken
pour être plus précis, ces 2 UDF ne me retournent plus aucun résultat dès que je remplace le filtre "*" par "*.tif" (ou autre)

Re: [..] Recherche de dossiers contenant certains fichiers

Posté : mer. 14 déc. 2011 21:52
par Tlem
Je ne comprend vraiment pas votre problème !!!

Le code ci-dessous me retourne bien la liste des fichiers *.bmp du dossier Windows ainsi que de ses sous répertoires :

Code : Tout sélectionner

#include <Array.au3>
#include "_FileListToArrayEx.au3"

$Path = "C:\Windows"
$Filter = "*.bmp"

$aArray = _FileListToArrayEx($Path, $Filter, 0, 2)

_ArrayDisplay($aArray)
J'ai testé en utilisant *.tif sur un répertoire de mon ordinateur qui contient des fichiers *.tif et un dossier nommé TIF et j'ai bien en retour uniquement les fichiers.
Pour avoir les fichiers + le dossier nommé TIF, je remplace la recherche par *TIF. Si je ne met que TIF alors seul le dossier TIF est trouvé !

Tout cela est un comportement NORMAL. La fonction fait ce que vous lui demandez. Si vous attendez un autre comportement, merci de l'expliquer plus en détail.

Re: [..] Recherche de dossiers contenant certains fichiers

Posté : mer. 14 déc. 2011 22:32
par shiroken
Désolé si mon explication est confuse
En fait, je cherche à lister tous les répertoires et sous répertoires contenant des .tif (ou autre), pour obtenir uniquement la liste des répertoires et sons répertoires concerné, pas la liste des fichiers!
Tous les UDF ou presque que j'ai testé propose en paramètre de faire ressortir ou la liste répertoires + fichiers, ou la liste des fichiers uniquement, ou la liste des répertoire uniquement.
C'est ce dernier point qui m'intéresse, mais je n'obtient pas le résultat demandé.
Cela vient peut être d'une erreur de paramètre de ma part (je suis un néophyte), mais j'ai déjà utilisé plusieurs de ces UDF (il est vrai, pour obtenir une liste de fichiers), et j'ai toujours obtenu ce que je voulais!
Ma demande est peut être un peut tordu, mais, dans le cadre de mon travail, je dois exécuter un programme qui convertit tous les tifs d'un répertoire et de ses sous répertoires (mais a l'arborescence variable...), qui les transforment en pdf (avec passage à l'OCR) dans un répertoire de sortie, et supprime les tifs d'origine. Mais ce programme ne possédant pas d'interface, et traitant plusieurs milliers de fichiers, le traitement est très long (plusieurs jours), et je me suis fais un programme qui surveille le contenu des répertoires en entré et sortie.

Voilà, j'espère avoir été assez claire ce coup ci, et je vous remercie pour le temps que vous me consacrer.

Re: [..] Recherche de dossiers contenant certains fichiers

Posté : mer. 14 déc. 2011 22:44
par jchd
Il suffit d'appliquer un post-traitement à la liste des fichiers (incluant leur chemin complet) répondant au filtre.

C'est simple : les fonctions sont des FileListToArray ou dérivés, pas des FolderListOfFilteredFilesToArray.

Une expression régulière (regexp) permettra de ne conserver que la partie chemin de chaque entrée du tableau, puis un _ArrayUnique éjectera les doublons.

Re: [..] Recherche de dossiers contenant certains fichiers

Posté : mer. 14 déc. 2011 23:57
par Tlem
On tombe là dans une demande de fonctionnement bien spécifique.
Ceci dit, après modification grossière de _FileListToArrayEx(), je vous propose le code ci-dessous qui colle au cahier des charges. :roll:
► Afficher le texte
Il y a probablement moyen de simplifier encore, mais j'avoue ne pas avoir pris le temps de chercher plus. Et puis c'est pas pour 5 ou dix lignes de code en trop ... :mrgreen:

Re: [..] Recherche de dossiers contenant certains fichiers

Posté : jeu. 15 déc. 2011 09:36
par shiroken
Et voilà, j'ai posté dans le but de savoir si les UDF que je testais n'étaient pas adapté à ma demande, ou si c'est moi qui les paramétrait mal les UDF.... et on me sors un code prêt à l'emploi!! :mrgreen:

Je viens de le tester, et à première vue, ça conviendrait tout a fait!!

Je vous remercie tous les 2 de vos réponses!