# La clase RecursiveDirectoryIterator

(PHP 5, PHP 7, PHP 8)

## Introducción

La clase RecursiveDirectoryIterator proporciona una interfaz para iterar recursivamente directorios del sistema de ficheros.

## Sinopsis de la Clase

class RecursiveDirectoryIterator extends FilesystemIterator implements SeekableIterator, RecursiveIterator {
/* Constantaes heredadas constants */
const integer FilesystemIterator::CURRENT_AS_PATHNAME = 32;
const integer FilesystemIterator::CURRENT_AS_FILEINFO = 0;
const integer FilesystemIterator::CURRENT_AS_SELF = 16;
const integer FilesystemIterator::CURRENT_MODE_MASK = 240;
const integer FilesystemIterator::KEY_AS_PATHNAME = 0;
const integer FilesystemIterator::KEY_AS_FILENAME = 256;
const integer FilesystemIterator::FOLLOW_SYMLINKS = 512;
const integer FilesystemIterator::KEY_MODE_MASK = 3840;
const integer FilesystemIterator::NEW_CURRENT_AND_KEY = 256;
const integer FilesystemIterator::SKIP_DOTS = 4096;
const integer FilesystemIterator::UNIX_PATHS = 8192;
/* Métodos */
public __construct(string `$path`, int `$flags` = FilesystemIterator::KEY_AS_PATHNAME | FilesystemIterator::CURRENT_AS_FILEINFO)
public getChildren(): mixed
public getSubPath(): string
public getSubPathname(): string
public hasChildren(bool `$allow_links` = `false`): bool
public key(): string
public next(): void
public rewind(): void
/* Métodos heredados */
public FilesystemIterator::__construct(string `$path`, int `$flags` = FilesystemIterator::KEY_AS_PATHNAME | FilesystemIterator::CURRENT_AS_FILEINFO | FilesystemIterator::SKIP_DOTS)
public FilesystemIterator::current(): mixed
public FilesystemIterator::getFlags(): int
public FilesystemIterator::key(): string
public FilesystemIterator::next(): void
public FilesystemIterator::rewind(): void
public FilesystemIterator::setFlags(int `$flags` = ?): void
}

## Historial de cambios

Versión | Descripción
--- | ---
5.3.0 | La clase FilesystemIterator fue introducida como una clase padre. Anteriormente, el padre era la clase DirectoryIterator.
5.3.0 | Se implementó SeekableIterator.
5.2.11, 5.3.1 | Agregado `RecursiveDirectoryIterator::FOLLOW_SYMLINKS`

## Tabla de contenidos

- RecursiveDirectoryIterator::__construct — Construye un RecursiveDirectoryIterator
- RecursiveDirectoryIterator::getChildren — Devuelve un iterador de la entrada actual si se trata de un directorio
- RecursiveDirectoryIterator::getSubPath — Obtiene sub ruta
- RecursiveDirectoryIterator::getSubPathname — Obtiene la sub ruta y nombre
- RecursiveDirectoryIterator::hasChildren — Devuelve si la entrada actual es un directorio y no '.' o '..'
- RecursiveDirectoryIterator::key — Devuelve la ruta y nombre de fichero del directorio
- RecursiveDirectoryIterator::next — Mover a la siguiente entrada
- RecursiveDirectoryIterator::rewind — Rebobina el directorio hasta el inicio