public function getIterator()
{
$rdi = new RecursiveDirectoryIterator($this->path, FilesystemIterator::CURRENT_AS_SELF | FilesystemIterator::KEY_AS_PATHNAME | FilesystemIterator::SKIP_DOTS);
$rci = new RecursiveCallbackFilterIterator($rdi, [$this, "filter"]);
$rii = new RecursiveIteratorIterator($rci);
foreach ($rii as $path => $child) {
if (!$child->isDir()) {
(yield realpath($path));
}
}
}