исключение c boost filesystem remove_all Каталог не пуст

#c #windows #boost

#c #Windows #boost

Вопрос:

Я использую boost 1.61 в Windows, и я пытаюсь удалить каталог с помощью boost::filesystem::remove_all() после проверки, что это каталог. Иногда это работает, но в других случаях я получаю исключение

"boost::filesystem::remove The directory is not empty:" с путем к каталогу, который я пытаюсь удалить.

Путь правильный, и когда я получаю это исключение, я проверяю папку и обнаруживаю, что там нет файлов. Я проверил реализацию библиотеки boost и обнаружил, что в Windows он вызывает RemoveDirectoryW , который говорит

Путь к удаляемому каталогу. Этот путь должен указывать пустой каталог, и вызывающий процесс должен иметь доступ для удаления к каталогу.

Учитывая, что папка была пуста, когда я ее проверял, что еще могло привести к сбою?

Комментарии:

1. Скрытые файлы, то есть папка казалась пустой, когда ее не было.