首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

遍历一个文件夹上的所有文件和子文件夹

2012-12-24 
遍历一个文件夹下的所有文件和子文件夹昨天面试的时候遇到了这个题目,没有做出来,因为我不知道用PHP访问文

遍历一个文件夹下的所有文件和子文件夹

昨天面试的时候遇到了这个题目,没有做出来,因为我不知道用PHP访问文件夹下文件的函数。

?

思路:要说算法的话,这题其实并不难。获取文件夹下的子文件,如果是文件就输出,如果是文件夹,输出之后继续深入搜索。用个递归就行了。

?

需要用到的方法:

is_dir($path) 判断是否是一个文件夹

opendir($path)打开文件夹

readdir($dir)依次读取文件夹下的文件

filetype($file)文件的属性,有dir和file两种

?

function listdirfiles($p){    //先检查$p是不是一个文件夹    if(is_dir($p)){          //依次读取文件夹下的子文件          $dir = opendir($p);          while(($file = readdir($dir))!==false){              //注意file的type,有file和dir两种,而dir要注意,在linux下,.和..也是属于dir的,如果不进行排除,会发生无限次循环的问题。              $type = filetype($p.$file);              if($type=='dir'&&$file!='.'&&$file!='..'){                   listdirfiles($p.$file.'/');                            }              echo $file.' ';          }          //用完要记得关闭          closedir($dir);    }else{          echo 'The path is not a dir';    }}
?

热点排行