Hi, Having trouble writing a RecursiveFilterIterator to exclude linked directories from the recursive listing.. class DXLinkDirectoryRecursiveFilter extends RecursiveFilterIterator { function accept() { return TRUE; } } interface DXDirectoryVisitor { function visit(DirectoryIterator $file); } class DXDirectory { const FILES_FIRST = RecursiveIteratorIterator::CHILD_FIRST; const FILES_ONLY = RecursiveIteratorIterator::LEAVES_ONLY; const DIR_FIRST = RecursiveIteratorIterator::SELF_FIRST; private $directory; function __construct($directory) { $this->directory = $directory; } function forEvery(DXDirectoryVisitor $visitor, $mode = self::DIR_FIRST) { $r = file_exists($this->directory); if ($r) { $directoryIterator = new RecursiveDirectoryIterator($this->directory); $directoryIterator = new DXLinkDirectoryRecursiveFilter($directoryIterator); $recursiveIteratorIterator = new RecursiveIteratorIterator($directoryIterator, $mode); foreach($recursiveIteratorIterator as $i) { if (!$i->isDot()) $r = $r && $visitor->visit($i); } } return $r; } } class DXDirEcho implements DXDirectoryVisitor { function visit(DirectoryIterator $dir) { echo $dir->getPathname(), "\n"; return TRUE; } } $d = new DXDirectory('somedirectory'); $d->forEvery(new DXDirEcho()); The filter shouldn't be doing anything, according to my understanding, but its filtering out all files in any of the subdirectories. Jared -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php