diff options
Diffstat (limited to 'system/helpers')
-rw-r--r-- | system/helpers/directory_helper.php | 6 | ||||
-rw-r--r-- | system/helpers/file_helper.php | 34 |
2 files changed, 36 insertions, 4 deletions
diff --git a/system/helpers/directory_helper.php b/system/helpers/directory_helper.php index e6ed47fd8..ad868519d 100644 --- a/system/helpers/directory_helper.php +++ b/system/helpers/directory_helper.php @@ -40,12 +40,10 @@ * @return array */ function directory_map($source_dir, $top_level_only = FALSE) -{ - if ( ! isset($filedata)) - $filedata = array(); - +{ if ($fp = @opendir($source_dir)) { + $filedata = array(); while (FALSE !== ($file = readdir($fp))) { if (@is_dir($source_dir.$file) && substr($file, 0, 1) != '.' AND $top_level_only == FALSE) diff --git a/system/helpers/file_helper.php b/system/helpers/file_helper.php index c9c21380d..4da62ade6 100644 --- a/system/helpers/file_helper.php +++ b/system/helpers/file_helper.php @@ -141,5 +141,39 @@ function delete_files($path, $del_dir = FALSE, $level = 0) } } +// ------------------------------------------------------------------------ + +/** + * Get Filenames + * + * Reads the specified directory and builds an array containing the filenames. + * Any sub-folders contained within the specified path are read as well. + * + * @access public + * @param string path to source + * @param bool whether to include the path as part of the filename + * @return array + */ +function get_filenames($source_dir, $include_path = FALSE) +{ + static $_filedata = array(); + + if ($fp = @opendir($source_dir)) + { + while (FALSE !== ($file = readdir($fp))) + { + if (@is_dir($source_dir.$file) && substr($file, 0, 1) != '.') + { + get_filenames($source_dir.$file."/", $include_path); + } + elseif (substr($file, 0, 1) != ".") + { + + $_filedata[] = ($include_path == TRUE) ? $source_dir.$file : $file; + } + } + return $_filedata; + } +} ?>
\ No newline at end of file |