`std::filesystem::directory_iterator`优雅地处理不存在的目录

我有以下代码:

for (const auto& x : std::filesystem::directory_iterator(dir)) {
    // do stuff with x
}

dir可能不存在,我想将这种情况视为 dir 为空。我似乎想不出一个好的选择。

  • 如果我用try/保护所有内容catch,那么我也会捕获迭代代码异常,我不想要那样。
  • 如果我向上移动std::filesystem::directory_iterator构造并用try/保护它catch,它会变得冗长,我将不得不重新抛出所有其他异常(它不会搞砸堆栈跟踪等吗?)。
  • 如果我使用 的非抛出构造函数directory_iterator,我将不得不抛出std::error_code其他错误。我不知道该怎么做。
以上是`std::filesystem::directory_iterator`优雅地处理不存在的目录的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>