foreach(new RecursiveIteratorIterator(new RecursiveDirectoryIterator(".")) as $file) {
echo "$file\n";
}
每当我尝试列出的目录中有不可读的子目录时,此代码是否有任何方法不抛出 UnexpectedValueException“无法打开目录:权限被拒绝”?
更新
转换foreach()
为while()
并显式调用Iterator::next()
Wrapped intry() catch {}
无济于事。这段代码:
$iter = new RecursiveIteratorIterator(new RecursiveDirectoryIterator("."));
while($iter->valid()) {
$file = $iter->current();
echo "$file\n";
try {
$iter->next();
} catch(UnexpectedValueException $e) {
}
};
如果存在不可读的子目录,则为无限循环。