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
  |