相关疑难解决方法(0)

我可以让RecursiveDirectoryIterator跳过不可读的目录吗?

foreach(new RecursiveIteratorIterator(new RecursiveDirectoryIterator(".")) as $file) {
  echo "$file\n";
}
Run Code Online (Sandbox Code Playgroud)

有没有办法让这个代码不会抛出UnexpectedValueException"无法打开dir:权限被拒绝"只要目录中有一个不可读的子目录我试图列出?

UPDATE

转换foreach()while()显式调用Iterator::next()包装try() catch {} 并没有帮助.这段代码:

$iter = new RecursiveIteratorIterator(new RecursiveDirectoryIterator("."));
while($iter->valid()) {
    $file = $iter->current();
    echo "$file\n";
    try {
        $iter->next();
    } catch(UnexpectedValueException $e) {
    }
};
Run Code Online (Sandbox Code Playgroud)

如果存在不可读的子目录,则是无限循环.

php directory directory-walk

15
推荐指数
2
解决办法
4473
查看次数

标签 统计

directory ×1

directory-walk ×1

php ×1