递归 / 迭代两种方法实现查找指定目录下所有文件
2013-03-27 09:27
961 查看
<?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')); ?>
相关文章推荐
- PHP递归获取目录内所有文件的实现方法
- 对指定文件夹进行递归遍历,将所有文件存到QStringList里。两种方法
- python实现在目录中查找指定文件的方法
- 递归实现查找目录下的所有子目录和文件
- Linux下使用find查找文件内容,跳过所有目录名成和指定子目录的方法
- 利用递归寻找某个目录下的指定名称所有文件(方法2)
- Python实现查找指定目录下包括某关键字的所有文件脚本
- python实现在目录中查找指定文件的方法
- 用嵌套递归的方法搜索指定目录下的所有文件
- findfirst findnext 递归查找指定目录下所有子目录下所有文件,为什么总是死机?
- python查找指定目录下所有文件,以及改文件名的方法
- 查找指定目录下所有文件(包括子目录)——使用递归
- Linux下替换指定的目录及其子目录下所有文件中的某些内容(3种方法)
- linux下grep实现某目录下所有目标字符串的递归(包含子目录)查找
- php实现远程网络文件下载到服务器指定目录(方法一)
- Linux或者MAC下查找指定目录下的所有指定名字的文件并删除的命令
- PHP递归遍历指定文件夹内的文件实现方法
- php实例分享之通过递归实现删除目录下的所有文件详解
- File,把指定的目录下的所有文件和文件夹删除的方法
- 编写一个程序,能在当前目录以及当前目录的所有子目录下查找文件名包含指定字符串的文件,并打印出相对路径。