Опция 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
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

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