#include <stdio.h>
#include <dirent.h>
int main()
{
// These are data types defined in the "dirent" header
DIR *theFolder = opendir("path/of/folder");
struct dirent *next_file;
char filepath[256];
while ( (next_file = readdir(theFolder)) != NULL )
{
// build the path for each file in the folder
sprintf(filepath, "%s/%s", "path/of/folder", next_file->d_name);
remove(filepath);
}
closedir(theFolder);
return 0;
}
Vous ne voulez pas générer un nouveau shell via system()
ou quelque chose comme ça - c'est beaucoup de surcharge pour faire quelque chose de très simple et cela fait des suppositions inutiles (et des dépendances) sur ce qui est disponible sur le système.
En C/C++, vous pourriez faire :
system("exec rm -r /tmp/*")
Dans Bash, vous pourriez faire :
rm -r /tmp/*
Cela supprimera tout ce qui se trouve dans /tmp, mais pas /tmp lui-même.
en utilisant le joker *
caractère, vous pouvez supprimer tous les fichiers avec n'importe quel type d'extension.
system("exec rm -r /tmp/*")