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.
Commentaires
3 septembre 2011 à 8:28
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 !