Как на php максимально продуктивно искать директории?

coder1812

Новичок
Задача: на сервере найти пути ко всем папкам с заданным именем. Например, ищем все папки с именем test4.

Команды readdir или scandir выводят все файлы в директории. Но если бы была возможность обрабатывать только директории, то производительность намного бы улучшилась. Так как, обычно, файлов намного больше, чем папок.

Есть ли какой-то способ делать листинг директории, чтобы обычные файлы игнорились, обрабатывались только папки?
 

coder1812

Новичок
Простите, не понял. Как можно с помощью chdir сделать листинг директории?
 

coder1812

Новичок
Опять не понял, как можно с помощью is_dir сделать листинг директории :)

PHP:
$dh = opendir($path);
    while (false !== ( $file = readdir($dh) )) {
        echo $file . "<br/>";
    }
    closedir($dh);
Вот пример кода листинга дириктории. Мне надо искать _только_ папки (по названию). И если в этой директории будет 1000000 файлов и 10 папок, то этот цикл в этом коде сделает 1000000+10+2 итерации.

А я ищу возможности делать листинг директории только среди директорий. Чтобы было только 10+2 итерации данного цикла.

Т.е. хочется команду типа readdir($dh, READ_ONLY_DIRS);


Хотя возможно это на уровне файловой системы нет огранизации, чтобы можно было запросить только папки, а не папки+файлы.
 

coder1812

Новичок
PHP:
$dh = opendir($path);
    while (false !== ( $file = readdir($dh) )) {
        if (is_dir($file)) {
        echo $file . "<br/>";
        }
    }
    closedir($dh);
-- такой вариант не устраивает тем, что все равно будет прочитаны не только директории, но и файлы.
 

tz-lom

Продвинутый новичок
а по другому никак, и не заморачивайтесь на это, linux весьма быстро листает директории и хорошо кеширует результаты
а для получения списков (особенно вглубь) удобен RecursiveDirectoryIterator
 
Сверху