Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How do I make a RecursiveDirectoryIterator exclude hidden folders

Tags:

php

I have a recursiveDirectoryIterator like this:

$theme_iterator = new RecursiveIteratorIterator(
    new RecursiveDirectoryIterator($theme_folder_path)
);
foreach ($theme_iterator as $file_object) {
   // Stuff
}

The problem is that it iterates into the .svn hidden folders. How can I prevent this?

Edit:

I can't just add something like this in the foreach because the files from the hidden folder are allready in the array at that point and they are not all hidden.

if (strpos($file_object, ".") ===0) {
    continue;
}
like image 483
SystemicPlural Avatar asked Dec 09 '25 07:12

SystemicPlural


1 Answers

<?php
class RecursiveDotFilterIterator extends  RecursiveFilterIterator
{
    public function accept()
    {
        return '.' !== substr($this->current()->getFilename(), 0, 1);
    }
}

$iterator = new RecursiveIteratorIterator(
    new RecursiveDotFilterIterator(
        new RecursiveDirectoryIterator('.')
    )
);
foreach ($iterator as $x) {
    //do stuff
}
like image 192
BreyndotEchse Avatar answered Dec 11 '25 21:12

BreyndotEchse