<?php
/**
* 查找指定目录下所有文件
*/
// 递归处理方案
function getAllFileName($dir, &$list = array())
{
if(!is_dir($dir))
return array();
$dir = rtrim(str_replace( '\\', '/' , $dir), '/').'/'; //将所有‘\’ 换成 ‘/’,补齐末端的‘/’
$dh = opendir($dir);
while (($file = readdir($dh)) !== FALSE)
{
if('.' != $file && '..' != $file)
{
$temp = $dir.$file;
if(is_dir($temp))
getAllFileName($temp, $list);
else
$list[] = $file;
}
}
closedir($dh);
return $list;
}
// 迭代处理方案
function getAllFileName1($dir)
{
$return = array();
if(!is_dir($dir))
return $return;
$dir = rtrim(str_replace( '\\', '/' , $dir), '/').'/'; //将所有‘\’ 换成 ‘/’,补齐末端的‘/’
$dirs = array($dir);
do
{
$dir = array_pop($dirs);
$temp = scandir($dir);
foreach ($temp as $f)
{
if ($f == '.' || $f == '..')
continue;
$path = $dir.$f;
if(is_dir($path))
array_push($dirs, $path. '/');
else
$return[] = $f;
}
} while($dirs);
return $return;
}
var_dump(getAllFileName('E:\Work\coder\trunk\test'));
var_dump(getAllFileName1('E:\Work\coder\trunk\test'));
?>
递归 / 迭代两种方法实现查找指定目录下所有文件
最新推荐文章于 2019-05-23 20:41:19 发布