Voila un exemple de fonction qui supprime tous les fichiers et repertoires d'un repertoire passé en parametre
//---------------------------------------------------------------------------
//Suppression récursive des fichiers d'un repertoire
void fSupp_Files ( char f_Rep [ 512 ] )
{
//Déclaration des variables
char f_Chemin [ 512 ] ;
WIN32_FIND_DATA wData ;
HANDLE f_Find ;
//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 ) ;
}
} while ( FindNextFile ( f_Find , &wData ) ) ;
}
FindClose( f_Find );