NOTA: dependiendo la configuración del sistema operativo, quizás se requieran permisos.
Ejemplo:
Código PHP:
$directorio="C:\Users\Sergio\Downloads";
//Abrimos el directorio
if(!($obertura=opendir($directorio)))
die("No se puede abrir el directorio");
echo "<ul>";
while($contenido=readdir($obertura)) {
//No mostrar ni el directorio actual ni el padre
//aqui se podrian hacer otro tipo de filtros, usar is_dir() para filtro para solo ficheros o solo directorios
if($contenido!="." && $contenido!= ".." ){
echo "<li>$contenido</li>";
}
}
echo "</ul>";
closedir($obertura);
Bueno ahí lo dejo, seguro que hay alguna forma mejor o más optima pero yo lo resolví así, si alguien quiere poner un comentario explicando una forma mejor que no se vea cohibido puesto que la función de este blog es ayudar y mejorar en la medida de lo posible.
Un saludo.
La opción más sencilla es la siguiente:
ResponderEliminarif (is_dir($contenido)) {
//Es un directorio
} else {
echo "<li>$contenido</li>";
}
Hola Javier, gracias por tu aporte.
EliminarLo que comentas es cierto, aunque en este caso tan solo estoy mostrando la manera de listar el primer nivel de un directorio y no es necesario evaluar si es un directorio o un fichero cualquiera porque simplemente se va a mostrar la ruta, ya dejé un comentario con el is_dir por si se requiere filtrar directorios o ficheros.
Con tu código se saltaría por alto todos los directorios y no solo el actual y el anterior, claro que seria el método necesario si se quisiera listar el árbol completo de directorios con una función recursiva.
Gracias de nuevo por tu aporte. Un saludo.
PD: Ahora mismo no estoy seguro y no puedo comprobarlo, pero diría que, si se quisiera hacer la función recursiva para listar el árbol completo de directorios, sería necesario comprobar si son los "." o ".." porque sino se podría entrar en un bucle infinito.