`
羽落窗前
  • 浏览: 105475 次
  • 性别: Icon_minigender_2
  • 来自: 厦门
社区版块
存档分类
最新评论

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

 
阅读更多

昨天面试的时候遇到了这个题目,没有做出来,因为我不知道用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';
    }
}
 
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics