Скажем, у меня есть несколько файлов внутри папок внутри папки, например:
folder1
|- folder11
| |- file1
|
|- folder12
|- file2
Все эти файлы и папки создаются во время выполнения моей программы и впоследствии должны быть удалены. Для этого я пытался использовать std::experimental::filesystem::remove_all(path)
с path
быть относительным или абсолютным путем к folder1
(Я пробовал оба). Это должно рекурсивно удалять файлы и папки, заканчивая удалением folder1
,
Вместо этого происходит удаление файлов, после чего выдается исключение, а папки остаются.
Ошибка файловой системы: невозможно удалить все: Отказано в доступе [. \ path \ to \ folder1]
Я собираю с gcc 7.3.0 на Windows 7. К сожалению, с этим компилятором я не могу проверить и увидеть, происходит ли такое же исключение с std::filesystem
,
Я также попытался выполнить программу от имени администратора, но все равно выдается то же исключение.
От этот ответ, Я понимаю, что раньше была ошибка, которая была исправлена, хотя.
Итак, теперь мой вопрос, если я понимаю использование remove_all()
неправильно, если я пропустил некоторые настройки, которые я должен сделать, чтобы правильно использовать эту функцию, или если в ее реализации может быть другая ошибка.
Задача ещё не решена.
Других решений пока нет …