foreach(new RecursiveIteratorIterator(new RecursiveDirectoryIterator(".")) as $file) {
echo "$file\n";
}
Есть ли какой-либо способ для этого кода не выбрасывать UnexpectedValueException "не удалось открыть dir: Permission denied" всякий раз, когда есть недопустимый подкаталог внутри каталога, который я пытаюсь перечислить?
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) {
}
};
является бесконечным циклом, если существует нечитаемый подкаталог.