help avec la classe CFileFind? [VC++] - C++ - Programmation
Marsh Posté le 02-01-2003 à 12:35:15
Simple lorque tu trouve un fichier teste si c un fichier ou un folder (File.IsFolder je crois), si c un folder, tu relance ta fonction de listage en partant de ce folder. Une fonction ecursive koi ... 
 
| Code : 
 | 
Marsh Posté le 02-01-2003 à 13:19:46
merci 
j'ai tester ca marche mieux 
seul truc c que ca ne va pas parcourir tous les sous repertoire 
exemple dans windows tu as le repertoire options qui lui meme contient le repertoire cabs 
 
en faite c une question de nivo de profondeur 
je v arranger ca je pense 
Marsh Posté le 02-01-2003 à 13:51:49
euh si desole ... 
le fait de rappeler la fonction avec une nouvelle racine relance le truc ... 
Parcontre oui, il fo peut etre changer les param du insert ds le treeview pour afficher l'arborescence proprement.
Marsh Posté le 02-01-2003 à 13:54:28
ba ecoute je te remercie de ton aide encore une fois 
mais je viens de reteste et la fonction va dans un repertoire puis un sous rep et c tout elle ne va pas plus loin  
enfin c ce que j'ai constater 
Marsh Posté le 02-01-2003 à 14:01:12
bizarre theoriquement ... ca devrait marcher !! 
t'as bien verifier qu'y avait + d'un sousrep ...
Marsh Posté le 02-01-2003 à 14:05:22
en faite je viens de tester avec des messagesbox 
et le truc c que dans newroot tu as par exemple:       
mesdocumentC:\mesdocument  et c le C:\ qui ce met au millieu 
Marsh Posté le 02-01-2003 à 14:06:46
oui j'ai bien verifier 
je n'ai qu'un niveau de profondeur(j'entend par la un repertoire puis un sous rep mais apres si y'a d'autres sous rep et bien il y va pas) 
Marsh Posté le 02-01-2003 à 16:27:44
ah OK c'est une erreur de ma part. 
Faut pas faire  
 
| Code : 
 | 
 
 
mais 
 
| Code : 
 | 
 
 
juste recuperer le nom pas le chemin complet
Marsh Posté le 03-01-2003 à 09:44:39
ah ok 
mais a quel endroit tu modifie ca? 
while(filefind.FindNextFile())   
    {   
     //on cherche le prochain fichier si il existe   
 
     //on recupere son nom   
      
   //[#c63800]tu change ici? 
    path=filefind.GetFilePath();   
 
    //on l'affiche dans le tree view   
    m_CtlTree.InsertItem(path,0,0);   
 
   // si c un directory, on repart.  
 
   if( filefind.isDirectory() )  
   {   
      CString newroot;  
      //[#d42a00]ou bien ICI? 
      newroot = root + path;  
      recursiveFileFind( newroot );  
Marsh Posté le 03-01-2003 à 09:59:39
Bizarrement dans root je n'ai rien 
je viens de verifier avec un MessageBox. 
donc quand je concatene et bien ca me concatene rien avec le nom  
ce qui fait que je n'ai pas le bon chemin 
  
 
Marsh Posté le 02-01-2003 à 10:37:58
Voila Je voudrais lister tous le contenu mon disque dur avec repertoire et sous repertoire afin de les mettre dans un treeview
mais j'ai un peu de mal avec la fonction pour lister mon disque
pour l'instant j'ai fait ca:
CFileFind filefind;
CString path;
if(filefind.FindFile("c:\\*.*" ))
{
if(filefind.FindNextFile())
{
path=filefind.GetRoot();
m_CtlTree.InsertItem(path,0,0);
while(1)
{
//on cherche le prochain fichier si il existe
if(filefind.FindNextFile())
{
//on recupere son nom
path=filefind.GetFilePath();
//on l'affiche dans le tree view
m_CtlTree.InsertItem(path,0,0);
}
else
break;
}
}
}
Donc la je liste mon disque a partir de la racine avec les nom de repertoire et les fichiers
maintenant je voudrais faire la suite c a d listé les sous repertoire et leur contenu
Et la j'avoue que je bloque un peu
de l'aide serait le bienvenu