递归目录迭代器列出点,但不列出目录?
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);
这一行应该列出 $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);