-
Parcourir des dossiers
Bonjour,
J'ai conçu un petit programme me permettant de rechercher une suite de caractère dans un fichier précisé.
Ainsi quand j’exécute mon programme de la manière suivante, il me retourne toute les lignes ou mon mot a rechercher se trouve :
Monprograme.exe "mot_a_rechercher" "un_fichier.txt"
Maintenant je souhaiterais l’améliorer en pouvant lancer une recherche sur plusieurs fichiers. Au lieu de rentrer "un_fichier.txt" en argument je voudrais pouvoir écrire "*.php" pour que mon programme recherche dans tout les fichiers finissant par .php. Ou pouvoir écrire "C:\Windows" pour parcourir tout les fichiers/dossiers qu'il contient.
Mais je ne trouve pas comment récupérer le nom des fichiers pour pouvoir les parcourir par la suite en C sous Windows
Pourriez vous m'indiquer la méthode a suivre.
Je me demandais aussi par convention quand on ecris *.php, la recherche doit elle se produire que dans le dossier courant ou aussi dans les autres dossier qui en découle
Je vous remercie d'avance pour vos conseils.
-
Bonjour,
Malheureusement je crains que tu ne doives le faire toi-même avec scandir ou readdir.
Pour ouvrir un dossier : opendir et pour le fermer : closedir
Il me semble que c'est les même fonctions sous Windows à vérifier tout de même.
-
Je ne connais pas vraiment windows mais je pense que c'est la même chose qu'en shell sous unix/linux : quand tu écris "monprog *.php", le "*.php" est interprété par le shell, pas par "monprog". C'est le shell qui replace le "*.php" par la liste des fichiers du répertoire courant qui matchent le pattern "*.php", et passe cette liste d'arguments à monprog.
-
Sous Win32, tu peux utiliser les fonctions FindFirstFile() et FindNextFile() qui font ça très bien, et gèrent les *.qqchose etc.