Bueno, si dices (al menos en tu mensaje original) que unos links funcionaban y otros no, entonces creo que el problema esta en los datos, no en el codigo que muestra los datos.
Fijate en el HTML generado ("Ver->codigo fuente" en tu navegador), por si ves algun fallo.
Por ejemplo, en tu utimo codigo:
Código PHP:
echo "<a href=".' "/ '.$directorio."/".$leer.' ">'.$leer."</a> <br>\n"; // conversion a link
Fijate en el HTML que genera. Puede que sea incorrecto. En informatica, los espacios en blanco importan, tanto cuando faltan como cuando sobran.
Suerte.