Общее количество noob здесь, поэтому заранее извиняюсь, если это рассматривается где-то еще, но я не нахожу подходящий пример в Google где-либо и где-либо еще.
Я использую std :: filesystem :: recursive_directory_iteratorходить по дереву каталогов. Когда я получаю каталог, на который у меня нет разрешения, он выдает исключение. Я понимаю, что std :: filesystem :: directory_options - это то, что я хочу, чтобы иметь возможность пропустить запрещенное разрешение и не следовать символическим ссылкам;но я не уверен, как его использовать.
По сути, мне нужно пройтись по дереву каталогов (которое может быть довольно большим);пропуск любых разрешенных разрешенных каталогов и не следующих символических ссылок. Если в каждом каталоге есть какие-либо файлы любого типа, этот каталог добавляется в очередь для последующего использования.
Ниже приведен фрагмент кода.
Спасибо.
for (auto& dirent : std::filesystem::recursive_directory_iterator(start_path))
{
if (dirent.is_directory())
{
// CRASH if permission denied; need std::filesystem::options
std::filesystem::path fsp = dirent.path();
for (auto& subdirent : std::filesystem::directory_iterator(fsp))
{
if (!subdirent.is_directory())
{
dir_stack.push_back(dirent.path());
break;
}
}
}
}