Как избежать удаления каталога на remove_all с помощью Boost Libraries?

Я использую операцию boost :: filesystem :: remove_all для удаления содержимого каталога.

Он корректно удаляет содержимое, но, как указано в документации Boost Filesystem, он также удаляет и сам каталог.

Есть ли простой способ остаться с каталогом, несмотря на то, что он пуст?

10

Решение

Я думаю, что лучший способ — это выполнить итерацию внутри папки и выполнить 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());
}
18

Другие решения

Других решений пока нет …