答案 0 :(得分:2)
我不知道您是否查看了内置的recursiveIterator和recursiveDirectoryIterator类,并且可能已经打折了?
下面没有注意你所引用的缩进,但它是一种很好的方式(尽管可能不如你自己制作的递归函数那么快)迭代路径中的所有目录。
手册稀疏,有很好的例子恕我直言,但以下内容可能会引起关注,特别是因为你可以指定像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;
}
}