weblook$ happy face | Et hop!
recherche n'importe quel type de fichier(s ), cette fonction stock dans une liste (qui est une ListBox en MFC) les noms des fichiers.
Pour avoir un truc en C pur il suffit de changer les CString en char*,les Format par des strcpy,les +=/+ par des strcat et compagnie et d'ajouter le tout dans un char** ou une liste chaînée ou.... au choix
Code :
- void Cherche(const char *Catalogue, const char *FichierCherche)
- {
- CString s=Catalogue,str;
- char chemin[100];
- long hFile;
- struct _finddata_t c_file;
- CString point=".." , dpoint=".";
- /*----------------------recherche du fichier chercher----------------------*/
- _chdir(Catalogue);
- _getcwd(chemin,100);
- m_list.AddString(chemin);
- hFile=_findfirst(FichierCherche,&c_file);
- if(hFile!=-1)
- {
- if(c_file.name!=point && c_file.name!=dpoint)
- {
- str.Format(" %s",c_file.name);
- m_list.AddString(str);
- }
- }
- while(_findnext(hFile,&c_file)==0)
- {
- if(c_file.name!=point && c_file.name!=dpoint)
- {
- str.Format(" %s",c_file.name);
- m_list.AddString(str);
- }
- }
- _findclose(hFile);
- /*-------------------------reherche de repertoire--------------------------*/
- hFile=_findfirst("*.*",&c_file);
- while(_findnext(hFile,&c_file)==0)
- {
- if(c_file.name!=point && c_file.name!=dpoint)
- {
- if(c_file.attrib==0x10)
- {
- s+="\\";
- s+=c_file.name;
- Cherche(s,FichierCherche); /*recherche dans le nouveau reprtoire*/
- _chdir(Catalogue);
- s=Catalogue;
- }
- }
- }
- _findclose(hFile);
|
la recursivité résoud comme toujours des problèmes apparemment difficile...
exemple d'appel: void Cherche( "C:\\" , "*.cpp" ) Message édité par weblook$ le 06-11-2002 à 00:22:34
|