我正在使用 boost 迭代器“recursive_directory_iterator”递归地扫描一个目录。但是,当迭代器运行到我的应用程序无权访问的目录时,会抛出“boost::filesystem3::filesystem_error”类型的异常,这会停止迭代器并且程序中止。无论如何我可以指示迭代器跳过这些目录。
我尝试了Traversing a directory with boost::filesystem without throwing exceptions中建议的代码 但是,它对我也不起作用。我正在使用提升版本 1.49。
遵循建议(我能想到的最好的)后,我的代码如下所示:
void scand()
{
boost::system::error_code ec, no_err;
// Read dir contents recurs
for (recursive_directory_iterator end, _path("/tmp", ec);
_path != end; _path.increment(ec)) {
if (ec != no_err) {
_path.pop();
continue;
}
cout << _path->path() << endl;
}
}
谢谢你,艾哈迈德。