Parcourir les répertoires et les fichiers avec la classe Folder

On trouve dans le cœur de CakePHP une classe bien pratique de manipulation des répertoires et des fichiers, la classe Folder. Cette classe contient toutes les commandes utiles (l’équivalent d’un shell) pour manipuler le système de fichier, depuis la création d’un répertoire jusqu’au parcours récursif d’une arborescence.

Voyons par exemple comment lister les photos jpg d’un répertoire :

// {app}/controllers/exemples_controller.php
function liste_photos($path = null)
{
	// Import de la classe Folder
	App::import('Core', 'Folder');
 
	// Nouvelle instance de classe avec le répertoire choisi
	$dir = new Folder($path);
 
	// Liste des fichiers dont le nom satisfait une expression régulière
	$jpg_files = $dir->find('.+\.jpg');
 
	$this->set('photos', $jpg_files);
}

Cake renvoie une liste de fichiers sous la forme d’un tableau associatif :

Array(
	0 => photo1.jpg
	1 => photo2.jpg
	...
)

Notons que l’expression régulière passée en paramètre de la méthode Folder::find() est insensible à la casse.

Pierre-Emmanuel Fringant

Articles connexes

Commentaires

Merci pour ce petit tuto extrêmement clair !

Cependant je cherche à accéder à un répertoire qui se trouve en dehors de l’arborescence de mon site (sur un disque réseau par exemple), est il possible d’y accéder avec cette méthode ?

Encore merci !

Participez

Pour insérer une portion de code, utilisez <pre lang="php">...</pre>