Опция recursive_directory_iterator skip_permission_denied, по -видимому, игнорируется на macOS?C++

Программы на C++. Форум разработчиков
Anonymous
Опция recursive_directory_iterator skip_permission_denied, по -видимому, игнорируется на macOS?

Сообщение Anonymous »

Использование c ++ 20 и std :: fileystem :: recursive_directory_iterator на macos, этот код:

Код: Выделить всё

for (auto& f : recursive_directory_iterator(getenv("HOME"), directory_options::skip_permission_denied)) {
// dummy
}
, который должен , согласно моему пониманию документации, пропустить каталоги, которые он не имеет разрешения на то, чтобы выяснить, столкнуться с ошибкой при попытке повторить ~/библиотека/поддержка приложения/Mobilesync/.
Однако:
​​:
.

Код: Выделить всё

in recursive_directory_iterator::operator++(): attempting recursion into "/Users/t/Library/Application Support/MobileSync": Operation not permitted
Я предполагаю, что это означает, что существует некоторая функция разрешения/безопасности, которую присутствует итератор, не будет пропуская, даже если бы я не пропустил skip_permission_denied - что это может быть, и как бы я мог бы чисто заставить итератор, что может привести к тому, что он может разорвать все разрешения? При столкновении с известными каталогами, такими как Mobilesync или .trash, которые вызывают эту проблему, но это было бы беспорядочным решением по сравнению с возможностью обнаружения заранее, когда каталог вызовет эту проблему.

Подробнее здесь: https://stackoverflow.com/questions/703 ... o-be-ignor

Вернуться в «C++»