Surcharge de la classe recursivedirectoryiterator pour récupéré une liste de fichiers

Description

Ce petit code source et une surcharge de RecursiveDirectoryIterator qui permet d'utiliser une méthode getFile pour récupérer tous les fichiers / dossiers récursivement.

Fonctionnement :
$Dir = new ExtendRecursiveDirectoryIterator("glob://P:/www/*");
$array = $Dir -> getFiles();

Source / Exemple :


class ExtendRecursiveDirectoryIterator extends RecursiveDirectoryIterator
{
  public function getFiles($match = '#.*#i', $onlyDir = false, $recursive = true, $depth = -1)
  {
  //static $Files = array();
  $Files = array();
  foreach($this as $file)
    {
    // Windows' Dir Fix //
    $fileName = str_replace('\\', '/', $file -> getPathName());
    
    if($file -> isDir() && ($depth != 0))
    {
    // Windows' Dir Fix //
    if(preg_match($match, $fileName))$Files[] = $fileName.'/';
    if($recursive)$Files = array_merge($this -> getChildren() -> getFiles($match, $onlyDir, $recursive, $depth), $Files);
    }elseif(!$file -> isDir() && !$onlyDir && preg_match($match, $fileName)){
    $Files[] = $fileName;
    }
    }
return $Files;
}
}

Conclusion :


paramètres :

string $match : recherche avec preg_match
bool $onlyDir : Récupère uniquement les dossiers
bool $recursive : recherche dans les sous dossiers
int $depth : profondeur de la recherche dans les dossiers

Codes Sources

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.