#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;
}
system()
経由で新しいシェルを生成したくない またはそのようなもの - 非常に単純なことを行うには多くのオーバーヘッドがあり、システムで利用できるものについて不必要な仮定 (および依存関係) が生じます。
C/C++ では、次のことができます:
system("exec rm -r /tmp/*")
Bash では、次のことができます:
rm -r /tmp/*
これにより、/tmp 内のすべてが削除されますが、/tmp 自体は削除されません。
ワイルドカード *
を使用する 任意のタイプの拡張子を持つすべてのファイルを削除できます。
system("exec rm -r /tmp/*")