5

为了循环目录中的所有文件,我在 php 中创建了以下代码:

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

但是我无法列出目录的多个子目录中的所有文件。

4

3 回答 3

5

利用RecursiveDirectoryIterator

<?php

$path = realpath('/etc');

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

?>
于 2012-12-21T17:03:27.470 回答
0

就这么简单:

$dir = dir('DIRECTORY_TO_DISPLAY_HERE');
while (($file = $dir->read()) !== false) {
    if ($file != '..' && $file != '.') {
        echo $file;
    }
}
$dir->close();
于 2013-06-02T17:38:09.517 回答
0

试试这个。 在 php 手册中看到这个

function loop_dir($dir) {
    $iterator = new RecursiveIteratorIterator(new RecursiveDirectoryIterator($dir),
                                              RecursiveIteratorIterator::CHILD_FIRST);
    foreach ($iterator as $path) {
      echo $path
    }
}
于 2012-12-21T17:06:53.977 回答