From 2798b5033815f9165ad10137c0866b5fdb59ea54 Mon Sep 17 00:00:00 2001 From: Derek Jones Date: Tue, 6 May 2008 14:12:18 +0000 Subject: fixed a bug where the dir resource was not closed in the directory helper, and made it more efficient http://codeigniter.com/bug_tracker/bug/4206/ --- system/helpers/directory_helper.php | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) (limited to 'system') diff --git a/system/helpers/directory_helper.php b/system/helpers/directory_helper.php index 5a23944cb..25c16c1fc 100644 --- a/system/helpers/directory_helper.php +++ b/system/helpers/directory_helper.php @@ -45,22 +45,31 @@ if (! function_exists('directory_map')) { if ($fp = @opendir($source_dir)) { + $source_dir = rtrim($source_dir, DIRECTORY_SEPARATOR).DIRECTORY_SEPARATOR; $filedata = array(); + while (FALSE !== ($file = readdir($fp))) { - if (@is_dir($source_dir.$file) && substr($file, 0, 1) != '.' AND $top_level_only == FALSE) + if (substr($file, 0, 1) == '.') + { + continue; + } + + if ($top_level_only == FALSE && @is_dir($source_dir.$file)) { $temp_array = array(); - $temp_array = directory_map($source_dir.$file."/"); + $temp_array = directory_map($source_dir.$file.DIRECTORY_SEPARATOR); $filedata[$file] = $temp_array; } - elseif (substr($file, 0, 1) != ".") + else { $filedata[] = $file; } } + + closedir($fp); return $filedata; } } -- cgit v1.2.3-24-g4f1b