Salut !
j'essaye de lister tous les fichiers d'un repertoire et de ces sous-repertoire
j'imagine que ce sujet a dù etre traiter plusieurs fois dans ce forum
et je m'en excuse, j'ai pas trouver, ce topic si il existe
j'ai piquer du code ici et là nottament dans la FAQ C, ca liste trés bien
un répertoire mais pour les sous-répertoire ca marche pas
nottament quand j'essaye de faire un appel récursif
je travail avec Dev-C++ sous Windows xp :
Voila si quelqu'un pouvais m'aider comme d'hab ce serai super sympa
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
48
49
50
51
52
53
54 #include <iostream> #include <windows.h> using namespace std; bool lister(char* pszMask) { WIN32_FIND_DATA File; HANDLE hSearch; BOOL bFindNextFile; //vrai si il ya un fichier ou un repertoire suivant hSearch = FindFirstFile(pszMask, &File); if(hSearch == INVALID_HANDLE_VALUE){ return FALSE; } // Partie qui retourne le répertoire courant dans BufCurDir TCHAR BufCurDir[MAX_PATH]; DWORD dwRet; dwRet = GetCurrentDirectory(MAX_PATH, BufCurDir); //------ bFindNextFile = TRUE; do { if (File.dwFileAttributes == FILE_ATTRIBUTE_DIRECTORY) { // Traite les Repertoires if(File.cFileName[0] != '.') // ne traite pas "." et ".." { SetCurrentDirectory(File.cFileName); lister(pszMask); //<--------------- je me plante ici //cout << BufCurDir << '\\' << File.cFileName << endl; } } else { // Traite les Fichiers cout << BufCurDir << '\\' << File.cFileName << endl; } bFindNextFile = FindNextFile(hSearch, &File); } while(bFindNextFile); //tantqu'il existe un fichier ou répertoire suivant FindClose(hSearch); return TRUE; } int main(int argc, char *argv[]) { lister("*"); system("PAUSE"); return EXIT_SUCCESS; }![]()
Partager