nice ass
nice ass

Reputation: 16719

Recursive directory iterator lists dots, but not directories?

This line should list all files and subdirectories of $absPath:

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

But I only get files!

If I remove the \FilesystemIterator::SKIP_DOTS flag then I get subdirectories too, but with dots appended, eg:

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

Does anyone have a clue why this is happening?

Upvotes: 1

Views: 145

Answers (1)

Barmar
Barmar

Reputation: 781741

You have a flag for RecursiveIteratorIterator in the arguments of RecursiveDirectoryIterator.

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

Upvotes: 2

Related Questions