How to avoid removing directory on remove_all with Boost Libraries?

Santiago Agüero picture Santiago Agüero · Jan 30, 2013 · Viewed 14.4k times · Source

I'm using boost::filesystem::remove_all operation to remove the content of a directory.

It removes correctly the content, but, as state by Boost Filesystem Documentation, it also removes the directory itself.

Is there an easy way to stay with the directory despite that it's empty?

Answer

J. Calleja picture J. Calleja · Jan 30, 2013

I think the best way is to iterate inside the folder and perform remove_all for each element. Example code:

  namespace fs=boost::filesystem;
  fs::path path_to_remove("C:\\DirectoryToRemove");
  for (fs::directory_iterator end_dir_it, it(path_to_remove); it!=end_dir_it; ++it) {
    fs::remove_all(it->path());
  }