Display directories and subdirectories

Asked

Viewed 33 times

0

I have a routine to read and display files and directories in PHP.

My problem is to read directories within subdirectories.

<?php
// linux
$dir = new DirectoryIterator( '/www/sistema/fotos/' );
// windows
//$dir = new DirectoryIterator( 'c:/xampp/htdocs/sistema/fotos/' );

// array contendo os diretórios permitidos    
$diretoriosPermitidos = array("albuns");

foreach($dir as $file)
{
    // verifica se $file é diferente de '.' ou '..'
    if (!$file->isDot())
    {
        // listando somente os diretórios
        if  ( $file->isDir() )
        {
            // atribui o nome do diretório a variável
            $dirName = $file->getFilename();

            // listando somente o diretório permitido
            if( in_array($dirName, $diretoriosPermitidos)) {
                // subdiretórios
                $caminho = $file->getPathname();
                // chamada da função de recursividade
                recursivo($caminho, $dirName);
            }
        }

        // listando somente os arquivos do diretório
        if  ( $file->isFile() )
        {
            // atribui o nome do arquivo a variável
            $fileName = $file->getFilename();
            //
            echo "fotos: ".$fileName."<br>";
        }
    }
}

function recursivo( $caminho, $dirName ){

    global $dirName;

    $DI = new DirectoryIterator( $caminho );

    foreach ($DI as $file){
        if (!$file->isDot())
        {
            if  ( $file->isFile() )
            {
                //
                $fileName = $file->getFilename();
                //
                echo $dirName.": ".$fileName."<br>";
            }
        }

    }
}
?>
  • I didn’t even try to read the code, because I didn’t really understand what the "problem" would be, but I already tried to use the RecursiveDirectoryIterator? And do you really need to use these iterators for that?

  • I will read the documentation of Recursivedirectoryiterator and come back to say if it worked. Thank you!

No answers

Browser other questions tagged

You are not signed in. Login or sign up in order to post.