Fixed bug #4350 in get_filenames() when the $source_dir does not include a trailing slash
diff --git a/system/helpers/file_helper.php b/system/helpers/file_helper.php
index 1b37af2..7eb93da 100644
--- a/system/helpers/file_helper.php
+++ b/system/helpers/file_helper.php
@@ -160,19 +160,23 @@
* @access public
* @param string path to source
* @param bool whether to include the path as part of the filename
+ * @param bool internal variable to determine recursion status - do not use in calls
* @return array
*/
if (! function_exists('get_filenames'))
{
- function get_filenames($source_dir, $include_path = FALSE, $recursion = FALSE)
+ function get_filenames($source_dir, $include_path = FALSE, $_recursion = FALSE)
{
static $_filedata = array();
- if ($recursion === FALSE)
+ // reset the array and make sure $source_dir has a trailing slash on the initial call
+ if ($_recursion === FALSE)
{
$_filedata = array();
+ $source_dir = realpath($source_dir).'/';
}
+
if ($fp = @opendir($source_dir))
{
while (FALSE !== ($file = readdir($fp)))