PHP: 递归且快速地列出文件夹中的所有文件

PHP: List all files in a folder recursively and fast

我正在寻找递归扫描目录以查找所有现有文件和文件夹的最快方法。

示例:

 - images
 -- image1.png
 -- image2.png
 -- thumbnails
 --- thumb1.png
 --- thumb2.png
 - documents
 -- test.pdf

应该return:

所以我将从:

开始
$filesandfolders = @scandir( $path );
foreach ($filesandfolders as $f){
 if(is_dir($f)){
  //this is a folder
 } else {
 //this is a file 
}
}

但这是最​​快的方法吗?

您可以使用 RecursiveDirectoryIterator - 但我怀疑,它比简单的递归函数更快。

$iterator = new RecursiveIteratorIterator(new RecursiveDirectoryIterator('/path/to/folder'));
foreach ($iterator as $file) {
    if ($file->isDir()) continue;
    $path = $file->getPathname();
}