¿Cómo obtener los nombres de todas las subcarpetas y archivos presentes en un directorio usando PHP?

Dada la ruta de la carpeta y la tarea es imprimir los nombres de las subcarpetas y archivos presentes dentro de ellas.
Explicación: en nuestro código PHP, inicialmente, se comprueba si la ruta o el nombre de archivo proporcionado es un directorio o no usando la función is_dir() . Ahora, abrimos el directorio usando la función opendir() y luego verificamos si se está abriendo o tiene algunos errores. Luego usamos un bucle while para obtener los nombres de todas las subcarpetas, así como los archivos, presentes dentro del directorio con la ayuda de la función readdir() . Ahora vamos dentro de cada subcarpeta y leemos los nombres de todos los archivos presentes dentro de ellas siguiendo un procedimiento similar.
Estructura de carpetas: 
 

Código:  
Nota: este código se guardó como archivo PHP y se accedió a través de wampserver 
 

php

<?php
$gfg_folderpath = "GeeksForGeeks/";
// CHECKING WHETHER PATH IS A DIRECTORY OR NOT
if (is_dir($gfg_folderpath)) {
    // GETTING INTO DIRECTORY
    $files = opendir($gfg_folderpath); {
        // CHECKING FOR SMOOTH OPENING OF DIRECTORY
        if ($files) {
            //READING NAMES OF EACH ELEMENT INSIDE THE DIRECTORY
            while (($gfg_subfolder = readdir($files)) !== FALSE) {
                // CHECKING FOR FILENAME ERRORS
             if ($gfg_subfolder != '.' && $gfg_subfolder != '..') {
                    echo "SUBFOLDER--" .$gfg_subfolder . "<br>
                    "."Files in ".$gfg_subfolder."--<br>";
                     
                $dirpath = "GeeksForGeeks/" . $gfg_subfolder . "/";
                    // GETTING INSIDE EACH SUBFOLDERS
                    if (is_dir($dirpath)) {
                        $file = opendir($dirpath); {
                            if ($file) {
                //READING NAMES OF EACH FILE INSIDE SUBFOLDERS
               while (($gfg_filename = readdir($file)) !== FALSE) {
                if ($gfg_filename != '.' && $gfg_filename != '..') {
                        echo $gfg_filename . "<br>";
                           }
                         }
                      }
                   }
               }
                    echo "<br>";
                }
            }
        }
    }
}
?>
<!DOCTYPE html>
<html>
<head>
  <title>What's there in GeeksForGeeks </title>
</head>
<body>
</body>
</html>

Producción: 
 

Publicación traducida automáticamente

Artículo escrito por hacksight y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

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