method getTree documentation in bbn\File\Dir

Return an array with the tree of the folder's content.

Example

\bbn\X::dump(\bbn\File\Dir::getTree("/home/data/test")); /* (array) [ [ "name" => "/home/data/test/Folder", "type" => "dir", "num_children" => 0, "items" => [], ], [ "name" => "/home/data/test/Folder_test", "type" => "dir", "num_children" => 1, "items" => [ [ "name" => "/home/data/test/Folder_test/image.png", "type" => "file", "ext" => "png", ], ], ], ] \bbn\X::dump(\bbn\File\Dir::getTree("/home/data/test", true) ); /* (array) [ [ "name" => "/home/data/test/Folder", "type" => "dir", "num_children" => 0, "items" => [], ], [ "name" => "/home/data/test/Folder_test", "type" => "dir", "num_children" => 0, "items" => [], ], ] \bbn\X::dump(\bbn\File\Dir::getTree("/home/data/test", false, false, true) ); /* (array) [ [ "name" => "/home/data/test/Folder", "type" => "dir", "num_children" => 1, "items" => [ [ "name" => "/home/data/test/Folder/.doc.pdf", "type" => "file", "ext" => "pdf", ], ], ], [ "name" => "/home/data/test/Folder_test", "type" => "dir", "num_children" => 1, "items" => [ [ "name" => "/home/data/test/Folder_test/image.png", "type" => "file", "ext" => "png", ], ], ], ] function(string $dir, bool $only_dir = false, callable $filter = NULL, bool $hidden = false) { $r = []; $dir = self::clean($dir); $dirs = self::getDirs($dir, $hidden); if ( \is_array($dirs) ){ foreach ( $dirs as $d ){ $x = [ 'name' => $d, 'type' => 'dir', 'num_children' => 0, 'items' => self::getTree($d, $only_dir, $filter, $hidden) ]; $x['num_children'] = \count($x['items']); if ( $filter ){ if ( $filter($x) ){ $r[] = $x; } } else{ $r[] = $x; } } if ( !$only_dir ){ $files = self::getFiles($dir, false, $hidden); foreach ( $files as $f ){ $x = [ 'name' => $f, 'type' => 'file', 'ext' => bbn\Str::fileExt($f) ]; if ( $filter ){ if ( $filter($x) ){ $r[] = $x; } } else{ $r[] = $x; } } } } return $r; }

Return an array with the tree of the folder's content. BBN is a suite of PHP and JS libraries and VueJS components - all open-source! bbn.io, build applications, the quick way

This website uses cookies to ensure you get the best experience on our website.