La classe FilesystemIterator

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

Introduction

L'itérateur FilesystemIterator.

Synopsis de la classe

FilesystemIterator extends DirectoryIterator implements SeekableIterator {
/* Constantes */
const int CURRENT_AS_PATHNAME = 32 ;
const int CURRENT_AS_FILEINFO = 0 ;
const int CURRENT_AS_SELF = 16 ;
const int CURRENT_MODE_MASK = 240 ;
const int KEY_AS_PATHNAME = 0 ;
const int KEY_AS_FILENAME = 256 ;
const int FOLLOW_SYMLINKS = 512 ;
const int KEY_MODE_MASK = 3840 ;
const int NEW_CURRENT_AND_KEY = 256 ;
const int SKIP_DOTS = 4096 ;
const int UNIX_PATHS = 8192 ;
/* Méthodes */
public __construct(string $path, int $flags = FilesystemIterator::KEY_AS_PATHNAME | FilesystemIterator::CURRENT_AS_FILEINFO | FilesystemIterator::SKIP_DOTS)
public current(): mixed
public getFlags(): int
public key(): string
public next(): void
public rewind(): void
public setFlags(int $flags = ?): void
/* Méthodes héritées */
public DirectoryIterator::getBasename( string $suffix = ?): string
public DirectoryIterator::key(): string
public DirectoryIterator::seek(int $position): void
}

Constantes pré-définies

FilesystemIterator::CURRENT_AS_PATHNAME

FilesystemIterator::current() retourne le nom du chemin.

FilesystemIterator::CURRENT_AS_FILEINFO

FilesystemIterator::current() retourne un objet SplFileInfo.

FilesystemIterator::CURRENT_AS_SELF

FilesystemIterator::current() retourne $this (le FilesystemIterator).

FilesystemIterator::CURRENT_MODE_MASK

Masque FilesystemIterator::current().

FilesystemIterator::KEY_AS_PATHNAME

FilesystemIterator::key() retourne le nom de chemin.

FilesystemIterator::KEY_AS_FILENAME

FilesystemIterator::key() retourne le nom du fichier.

Makes RecursiveDirectoryIterator::hasChildren() follow symlinks.

FilesystemIterator::KEY_MODE_MASK

Masque FilesystemIterator::key().

FilesystemIterator::NEW_CURRENT_AND_KEY

Identique à FilesystemIterator::KEY_AS_FILENAME | FilesystemIterator::CURRENT_AS_FILEINFO.

FilesystemIterator::SKIP_DOTS

Ignore les fichiers points (. et ..).

FilesystemIterator::UNIX_PATHS

Les chemins utilisent le séparateur de dossier de type Unix, soit le slash, indépendamment du système de fonctionnement. Notez que le chemin qui est passé au constructeur n'est pas modifié.

Sommaire

add a note add a note

User Contributed Notes 3 notes

up
57
paul at paulgarvin dot net
10 years ago
You may be wondering, like I did, what is the difference between this class and DirectoryIterator?

When you iteterate using DirectoryIterator each "value" returned is the same DirectoryIterator object. The internal state is changed so when you call isDir(), getPathname(), etc the correct information is returned. If you were to ask for a key when iterating you will get an integer index value.

FilesystemIterator (and RecursiveDirectoryIterator) on the other hand returns a new, different SplFileInfo object for each iteration step. The key is the full pathname of the file. This is by default. You can change what is returned for the key or value using the "flags" arguement to the constructor.
up
4
thedilab at gmail dot com
8 years ago
DirectoryIterator returns virtual directories "." and ".." in a loop.
But FilesystemIterator ignores them.
up
-1
ohcc at 163 dot com
3 years ago
It's impossible to return dots (. and ..) by FilesystemIterator.
To Top