Experiment::filesystem::remove_all() : Отказано в доступе

Скажем, у меня есть несколько файлов внутри папок внутри папки, например:

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(), если я пропустил некоторые настройки, которые я должен сделать, чтобы правильно использовать эту функцию, или может быть другая ошибка в ее реализации.


person KorbenDose    schedule 22.06.2018    source источник
comment
запрограммируйте от имени администратора, но все равно выдается то же исключение. Эта папка находится в Program Files или какой-либо другой папке, для которой требуется повышение прав UAC?   -  person drescherjm    schedule 22.06.2018
comment
@drescherjm Нет, он лежит в простой папке на моем обычном диске. Никаких системных или других специальных папок. Я также могу удалить его вручную без повышения прав.   -  person KorbenDose    schedule 22.06.2018
comment
а) Visual Studio 2017 имеет заголовок файловой системы, поэтому, если вы не ограничены дисковым пространством интернет-соединения, вы можете попробовать это. б) вы можете попробовать простую систему (del bla.txt); и посмотрите, работает ли это.   -  person NoSenseEtAl    schedule 23.06.2018