Esha Soni
Esha Soni

Reputation: 51

list files inside directory of a directory

For looping all files in a directory, I created this code in php :

$dir = new DirectoryIterator(dirname(__FILE__));
$files = scandir($dir.'/');
foreach($files as $file) 
{
    echo $file;
    echo "\n";
}

However I am not able to list all files inside multiple subdirectory of a directory.

Upvotes: 5

Views: 278

Answers (3)

SancLunatic
SancLunatic

Reputation: 1

Simple as this:

$dir = dir('DIRECTORY_TO_DISPLAY_HERE');
while (($file = $dir->read()) !== false) {
    if ($file != '..' && $file != '.') {
        echo $file;
    }
}
$dir->close();

Upvotes: 0

DWright
DWright

Reputation: 9500

Try this instead. See this in php manual

function loop_dir($dir) {
    $iterator = new RecursiveIteratorIterator(new RecursiveDirectoryIterator($dir),
                                              RecursiveIteratorIterator::CHILD_FIRST);
    foreach ($iterator as $path) {
      echo $path
    }
}

Upvotes: 0

GBD
GBD

Reputation: 15981

Use RecursiveDirectoryIterator

<?php

$path = realpath('/etc');

$objects = new RecursiveIteratorIterator(new RecursiveDirectoryIterator($path), RecursiveIteratorIterator::SELF_FIRST);
foreach($objects as $name => $object){
    echo "$name\n";
}

?>

Upvotes: 5

Related Questions