How to recursively delete directory using C++17 filesystem library
To remove a file or directory (for example my-directory
) use remove_all
from the C++17 filesystem library:
remove_all("my-directory");
This will remove my-directory
and all its sub-directories and files recursively.
Full example:
#include <experimental/filesystem>
using namespace std::experimental::filesystem;
int main() {
remove_all("my-directory");
}
In case you are using GCC, you need to compile the file like this:
g++ -o delete-cpp17 delete-cpp17.cpp -lstdc++fs
You need to link the stdc++fs
library so the functions from the C++17 filesystem library are available to your program.
If you just want to remove a file and don’t want to risk deleting an entire directory tree, use remove
instead of remove_all
or see our previous post How to delete file using C++17 filesystem library