mira, el $d->read()
NO entrega la ruta completa... para que
is_dir() funcione debes también concatenar la ruta...
Código PHP:
// ...
if (is_dir('../foo/' . $bar)) // ...
// ...
si no sabes como es el resultado de algo, averigualo con un simple
echo ...
eso, con un simple debug lo pudiste haber deducido... ¿no crees??