ExpressionEngine Docs

# Directory Helper

The Directory Helper file contains functions that assist in working with directories. This helper is loaded using the following code:

    ee()->load->helper('directory');

## Available Functions

### `directory_map($source_dir[, $directory_depth = 0[, $hidden = FALSE]])`

Parameter | Type | Description
--- | --- | ---
$source_dir | `String` | Path to the source directory
$directory_depth | `Int` | Depth of directories to traverse (0 = fully recursive, 1 = current dir, etc)
$hidden | `Bool` | Whether to include hidden directories
Returns | `Array` | An array of files

Examples:

    $map = directory_map('./mydirectory/');

Note: Paths are almost always relative to your main index.php file.

Sub-folders contained within the directory will be mapped as well. If you wish to control the recursion depth, you can do so using the second parameter (integer). A depth of 1 will only map the top level directory:

    $map = directory_map('./mydirectory/', 1);

By default, hidden files will not be included in the returned array. To override this behavior, you may set a third parameter to true (boolean):

    $map = directory_map('./mydirectory/', FALSE, TRUE);

Each folder name will be an array index, while its contained files will be numerically indexed. Here is an example of a typical array:

    Array (
        [libraries] => Array
            (
                [0] => benchmark.html
                [1] => config.html
                ["database/"] => Array
                    (
                        [0] => query_builder.html
                        [1] => binds.html
                        [2] => configuration.html
                        [3] => connecting.html
                        [4] => examples.html
                        [5] => fields.html
                        [6] => index.html
                        [7] => queries.html
                    )
                [2] => email.html
                [3] => file_uploading.html
                [4] => image_lib.html
                [5] => input.html
                [6] => language.html
                [7] => loader.html
                [8] => pagination.html
                [9] => uri.html
            )