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) {
}
};
- это бесконечный цикл, если есть нечитаемый подкаталог.