Listar los archivos de una directorio o carpeta en PHP

Con este script podrás ver el contenido de una carpeta, todos sus archivos y directorios contenido. lo que hacemos es crear un RECURSO con la ruta actual y lo recorremos con un while, adicionalmente verificamos si es o no un subdirectorio. de ser cierto lo pondremos entre corchetes [] para diferenciarlo de los archivos

Este es script es bastante básico pero nos da una idea de como verificar y obtener el contenido de una carpeta en PHP así de como recorrerlo

<?php
$directorio = opendir("."); //ruta actual
while ($archivo = readdir($directorio)) //obtenemos un archivo y luego otro sucesivamente
{
    if (is_dir($archivo))//verificamos si es o no un directorio
    {
        echo "[".$archivo . "]<br />"; //de ser un directorio lo envolvemos entre corchetes
    }
    else
    {
        echo $archivo . "<br />";
    }
}
?>

Más adelante haremos un script que nos permita visualizar todo el contenido de un sitio web como si fuera un explorador de Windows o un acceso FTP 🙂

21 Comentarios para “Listar los archivos de una directorio o carpeta en PHP”

  1. Hola como puedo desplegar el contenido de un directorio en un combobox y que al seleccionarlo se muestre de cada uno el contenido de esas carpetas

  2. eduardo. Hola espero que te ayude… eso lo puedes hacer con ajax y en el evento onChage de tu select. El select lo puedes llenar con el resultado de la función que se describe en el artículo. El evento onChange llamará a otro controlador php que liste el contenido de la capeta que especifiques en el select.

  3. Excelente información gracias

  4. Su foro es excelente el código fuente me ha servido muchísimo pero solamente me lista las carpetas existentes de una rutad dada, quisiera saber como puedo no solo en listar las carpetas si no explorarlas y tener acceso a los archivos existentes dentro de las carpetas listadas.

  5. Hay una función nativa en PHP5: scandir( $ruta )
    Se obtiene un array con los ficheros y directorios ubicados en la ruta especificada.
    Saludos.

  6. Gracias, me sirvio el codigo

  7. Hola que tal buenas noches, quiciera saber como desplegar el contenido por orden de nombre o fecha y todo en un 🙂 muchas gracias

  8. Excelente, gracias….

  9. Disculpen, tengo un problema, cuando la carpeta hay solamente carpetas, todas las toma como archivos cuando en realidad son carpetas.

  10. lEste es el codigo que tengo.. me muestra un combobox conlas carpetas que tengo en un directorio .. lo que quiero saber es! Como podria ver las subcarpetas y los archivos pdf que existen en ellas?? Codigo porfavor !

    <?php
    $directorio = getcwd()."/archivos";
    $sizekb = 0.0 ;
    $sizemb = 0.0 ;
    $dir=opendir($directorio);

    echo "»;
    echo «Archivo a eliminar: «;
    echo «»;
    while ($file = readdir($dir)){
    if ($file != «.» && $file != «..»){
    echo «$file»;
    }
    }
    echo «»;
    echo «»;
    closedir($dir);
    ?>

    1. Tendrias que agregarle un condicional en caso sea carpeta y de ser el caso, aplicar nuevamente la misma funcion (osea, tiene que ser una función recursiva)

  11. […] Origen: El Codigo Fuente – Listar los archivos de una directorio o carpeta en PHP […]

  12. hola que tal, tengo una duda, como podria buscar un archivo en un directorio para despues poder descargarlo?
    osea por lo poco que se tendria que hacer un formulario no?.
    Necesito buscar unos pdf en mi servidor y si existen poder descargarlos.
    Saludos

  13. Excelente código me resolvió un problema, saludos y gracias por compartir

  14. Buenas, gracias por el codigo. Me funciono perfecto.
    antes yo tenia implementado este:
    foreach (glob(getcwd ().»*.txt») as $filename)
    {

    aqui hago algo con los archivos txt resultantes
    }
    Dejo de funcionar en una actualizacion de php.
    El tuyo fue un excelente reemplazo, solo lo cambie para que solo trajera los archivos «txt».
    Gracias

    1. como hiciste para que solo muestre los txt

  15. Muy entendible y funcional.
    Excelente, gracias!

  16. Muy bueno y exacto

  17. funcional, fácil de aplicar, gracias.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *