递归目录迭代器列出点,但不列出目录?

Recursive directory iterator lists dots, but not directories?

这一行应该列出 $absPath:

的所有文件和子目录
$iterator = new \RecursiveIteratorIterator(new \RecursiveDirectoryIterator($absPath,
 \RecursiveIteratorIterator::SELF_FIRST | \FilesystemIterator::SKIP_DOTS));

但我只得到文件!

如果我删除 \FilesystemIterator::SKIP_DOTS 标志,那么我也会得到子目录,但会附加点,例如:

[0] => abc/.
[1] => abc/..
[2] => abc/def/.
[3] => abc/def/..

有人知道为什么会这样吗?

您在 RecursiveDirectoryIterator 的参数中有一个 RecursiveIteratorIterator 的标记。

$iterator = new \RecursiveIteratorIterator(new \RecursiveDirectoryIterator($absPath,
 \FilesystemIterator::SKIP_DOTS), \RecursiveIteratorIterator::SELF_FIRST);