Я использую операцию boost :: filesystem :: remove_all для удаления содержимого каталога.
Он корректно удаляет содержимое, но, как указано в документации Boost Filesystem, он также удаляет и сам каталог.
Есть ли простой способ остаться с каталогом, несмотря на то, что он пуст?
Я думаю, что лучший способ — это выполнить итерацию внутри папки и выполнить remove_all для каждого элемента. Пример кода:
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());
}
Других решений пока нет …