Neo020585
Messages postés178Date d'inscriptionlundi 10 mars 2003StatutMembreDernière intervention 6 juillet 20094 28 janv. 2005 à 09:52
Il faut pour cela créer une fonction qui va rentrer dans le répertoire que tu as choisis.
Elle va ensuite regarder le 1er élément :
- si c'est un dossier, elle rentre dedans, puis elle parcours à nouveau ce dossier en appelant la fonction que tu as créee (récursivité), etc...
- si c'est un fichier, tu récupère le nom du fichier, et tu fais ce que tu veux avec :)
J'ai déjà fait cette fonction, en C++, et j'ai trouvé la source sur cppfrance. (en fait, je l'ai modifiée car elle ne me donnait pas assez d'info pour mon prog !) :
http://www.cppfrance.com/codes/SCANDISC_SIMPLE_POUR_LISTER_LE_CONTENU_DUN_REPERTOIRE_-_DES_SOUS-REPERTOIRES-/22116.aspx Je ne peux pas t'assurer qu'elle fonctionne en C, mais mon raisonnement est celui que tu doit appliquer pour obtenir un bon résultat.
//Initialisation des variables
//Ajout de *.* f_Chemin
sprintf ( f_Chemin , "%s*.*" , f_Rep) ;
//Initialisation du Handle de recherche de fichiers
f_Find = FindFirstFile(f_Chemin, &wData);
//Suppresion de *.* a f_Chemin
strcpy ( f_Chemin , f_Rep ) ;
if ( f_Find != INVALID_HANDLE_VALUE)
{
do
{
if ( ( strcmp (wData.cFileName , "..") ) && ( strcmp (wData.cFileName, ".") ) )
{
if ( wData.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY )
{
//puisque c'est un repertoire, on recupere la nouvelle adresse, et on va rentrer dedans...
sprintf ( f_Chemin , "%s%s\", f_Rep , wData.cFileName ) ;
//On rappelle la fonction pour qu'elle supprime les fichiers du répèrtoire
fSupp_Files ( f_Chemin ) ;
RemoveDirectory ( f_Chemin ) ;
// reviens un repertoire en arriere
int j = strlen ( f_Chemin ) - 2 ;
while ( j > 0 )
{
if ( f_Chemin [ j ] == '\\' )
{
f_Chemin [ j+1 ] = '\0' ;
break ;
}
j -- ;
}
}
else // ce n'est pas un répèrtoire donc le fichier est supprimé
sprintf ( f_Chemin , "%s%s" , f_Rep , wData.cFileName ) ;
DeleteFile ( f_Chemin ) ;