【问题标题】:Recursive directory iterator lists dots, but not directories?递归目录迭代器列出点,但不列出目录?
【发布时间】:2020-10-09 01:47:37
【问题描述】:

这一行应该列出$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/..

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

【问题讨论】:

  • 不确定,但我认为\RecursiveIteratorIterator::SELF_FIRST 应该是\RecursiveIteratorIterator 的标志,而不是\RecursiveDirectoryIterator
  • 是的,这就是原因,谢谢!伙计,我需要另一杯咖啡..

标签: php iterator filesystems


【解决方案1】:

RecursiveDirectoryIterator 的参数中有 RecursiveIteratorIterator 的标志。

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

【讨论】:

    猜你喜欢
    • 2012-11-06
    • 2013-10-26
    • 2013-12-01
    • 2013-08-17
    • 2013-07-01
    • 1970-01-01
    • 2014-07-30
    • 2023-03-03
    相关资源
    最近更新 更多