Listage de fichiers et dossiers !

Signaler
Messages postés
546
Date d'inscription
vendredi 13 février 2004
Statut
Membre
Dernière intervention
9 janvier 2008
-
Messages postés
546
Date d'inscription
vendredi 13 février 2004
Statut
Membre
Dernière intervention
9 janvier 2008
-
Bonjour,

je cherche a lister des dossiers et des fichiers d'un dossier en c++.
je m'aide d'une source (Je ne sais plus de qui elle est!) je vois que cette fonction sert a choisir le repertoire mais je n'arrive pas a m'en servir . Que faudrait il ecrire?

LPCTSTR dir = "c:\\*.*";

ici le repertoire de recherche est C:
Mais lorsque j'ecris:

LPCTSTR dir = "c:\Program Files\\*.*"; ou bien
LPCTSTR dir = "c:\Program Files\*.*"; ca ne fonctionne pas

Ou est mon erreur? Merci

Si ca peut vous aider la suite de la source ca donne ca:

#include <windows.h> // pour les 2 apis utilisés FindFirstFile() FindNextFile()
#include // cout<< et using namespace std;
#include <stdlib.h> // pour le system("pause");
using namespace std; // nouvelle norme C++

void main(void) {
HANDLE hdlfff;

//On va lister tout les programmes et repertoires du disque C://Pour lister juste les .txt par exemple mettre: c:\\*.txt
//Ou sinon tout les fichier qui ont comme nom Creatix c:\\Creatix.*

LPCTSTR dir = "c:\\*.*";
//structure nécéssaire pour FindFirstFile() et FindNextFile()
WIN32_FIND_DATA IpFindFileData;

//la on initialise la variable hdlfff a la fonction FindFirstFile
hdlfff = FindFirstFile(dir,&IpFindFileData);

//premier fichier qu'il faut afficher avant la fonction FindNextFile qui ne
//comprend pas le 1er fichier

cout<<IpFindFileData.cFileName<<"\n";
//Tant que le prochain fichier n'est pas égale a 0
while (FindNextFile(hdlfff,&IpFindFileData)) {

//j'ecrie le nom du fichier
cout<<IpFindFileData.cFileName<<"\n";
}
//A la fin du programme je ferme le HANDLE
FindClose(hdlfff);
system("pause");
}

2 réponses

Messages postés
21042
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
25
backslash est un caractere d'echappement en C, faut donc le doubler pour ecrire un backslash dans une chaine.
"c:\\Program Files\\*.*";

ciao...
BruNews, Admin CS, MVP Visual C++
Messages postés
546
Date d'inscription
vendredi 13 février 2004
Statut
Membre
Dernière intervention
9 janvier 2008
1
merci de votre aide les gars !

Brunews tu as raison il faut bien doubler le parce que si j'en laisse qu'1 seul le compilateur dit:

Unknow escape sequence \ comme disait Brunews

Merci!