以递归方式打印文件夹中的所有文件和文件夹

时间:2015-08-28 16:08:27

标签: php recursion

我想以递归方式列出文件夹中的所有文件和文件夹。我已编写代码来获取输出,但我无法以适当的嵌套方式显示。

{{1}}

电流输出 enter image description here

预期:

enter image description here

1 个答案:

答案 0 :(得分:2)

我不知道您是否查看了内置的recursiveIteratorrecursiveDirectoryIterator类,并且可能已经打折了?

下面没有注意你所引用的缩进,但它是一种很好的方式(尽管可能不如你自己制作的递归函数那么快)迭代路径中的所有目录。

手册稀疏,有很好的例子恕我直言,但以下内容可能会引起关注,特别是因为你可以指定像CHILD_FIRST这样的东西。

$folder=__DIR__;
foreach( new RecursiveIteratorIterator( new RecursiveDirectoryIterator( $folder, RecursiveDirectoryIterator::KEY_AS_PATHNAME ), RecursiveIteratorIterator::CHILD_FIRST ) as $file => $info ) {
    if( $info->isFile() && $info->isReadable() && $info->isWritable() ){
        echo $info->getPathname() .' ' . $info->getFilename().BR;
    }
}