#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;
}
Sie möchten keine neue Shell über system()
spawnen oder so ähnlich - das ist eine Menge Overhead, um etwas sehr Einfaches zu tun, und es macht unnötige Annahmen (und Abhängigkeiten) darüber, was auf dem System verfügbar ist.
In C/C++ könnten Sie Folgendes tun:
system("exec rm -r /tmp/*")
In Bash könnten Sie Folgendes tun:
rm -r /tmp/*
Dies löscht alles in /tmp, aber nicht /tmp selbst.
indem Sie den Platzhalter *
verwenden Zeichen können Sie alle Dateien mit jeder Art von Erweiterung löschen.
system("exec rm -r /tmp/*")