foreach(new RecursiveIteratorIterator(new RecursiveDirectoryIterator(".")) as $file) {
echo "$file\n";
}
リストしようとしているディレクトリ内に読み取り不可能なサブディレクトリがある場合に、このコードがUnexpectedValueException「dirを開けませんでした:アクセスが拒否されました」をスローしない方法はありますか?
アップデート
ラップインに変換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) {
}
};
読み取り不可能なサブディレクトリがある場合、は無限ループです。