22.10 Dateien eines Verzeichnisses filtern

Problem

Sie wollen etwas mit allen Dateien eines Verzeichnisses machen, die bestimmten Kriterien entsprechen. Beispielsweise wollen Sie nur Dateien bearbeiten, die eine bestimmte Größe haben und nicht älter als ein bestimmtes Datum sind oder nicht tiefer als in einer bestimmten Ebene in Unterverzeichnissen liegen.

Lösung

Setzen Sie einen FilterIterator ein, dessen accept()-Methode die nötigen Kriterien überprüft:

class ComplexFilterIterator extends FilterIterator { public $maxSize; public $maxLevels; public $maxAge; public function __construct($iterator, $maxSize, $maxLevels, $maxAge) { parent::__construct($iterator); $this->maxSize = $maxSize; // maximale Größe in Bytes $this->maxLevels = $maxLevels; // ...

Get PHP 5 Kochbuch, Third Edition now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.