Bonjour, j'ai le code suivant qui me permet de récupérer tous les dossiers et fichiers d'un répertoire donné :
Ma question est la suivante : comment puis-je détecter si le ieme élément renvoyé est un fichier ou un dossier (dans le cas windows ou linux) ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47 using std::vector; using std::string; #if defined(_WINDOWS) #include <windows.h> #else /* environnement conforme a la norme POSIX */ #include <dirent.h> #endif void dir(const string & dirname,vector<string> & listfiles) { listfiles.clear(); #if defined(_WINDOWS) WIN32_FIND_DATA File; HANDLE hSearch; const string list = (dirname[dirname.size() - 1] != '/') ? dirname + "/*.*" : dirname + "*.*"; hSearch = FindFirstFile(list.c_str(), &File); if (hSearch != INVALID_HANDLE_VALUE) { do { listfiles.push_back(File.cFileName); } while(FindNextFile(hSearch, &File)); FindClose(hSearch); } #else /* environnement conforme a la norme POSIX */ DIR * rep = opendir(dirname.c_str()); if (rep != NULL) { struct dirent * ent; while ((ent = readdir(rep)) != NULL) { listfiles.push_back(ent->d_name); } closedir(rep); } #endif }
Merci d'avance
Partager