PHP-文件目录操作

    使用递归遍历指定文件目录及其子目录下的所有文件

  思路

     1.打开目录;

     2.遍历目录,判断是否还是目录。是目录则返回第1步,不是目录进入第三步;

     3.把文件名显示出来

  使用到的文件目录操作函数

      1.getcwd():获取当前工作目录;

      2.is_dir():检查指定的文件是否是目录;

      3.opendir():打开目录句柄

       ——返回值:

              成功则返回目录句柄资源。失败则返回 FALSE;

           如果路径不是合法目录,或者由于许可限制或文件系统错误导致的目录不能打开,则抛出 E_WARNING 级别的错误;

           可以通过在函数名称前添加 '@' 来隐藏 opendir() 的错误输出。

     4.readdir():返回目录中下一个文件的文件名

        ——返回值:

             若成功则返回条目名称(文件名),失败则返回 FALSE

    5.closedir():关闭目录句柄

 

 

 主要代码如下:

echo getcwd().'的文件目录树如下,目录用红色显示:<br />';
function fileSys($dir='./'){
    //打开目录
    if(is_dir($dir)){
        
        $mydir = opendir($dir);
        echo '<ul>';
        while ($filename = readdir($mydir)){
            if($filename != '.' && $filename != '..'){
                 //echo $filename.'<br />';
                 $newFile = $dir.'/'.$filename;//循环目录下文件不带“/”
                 if (is_dir($newFile)){
                     echo '<li><font color="red">'.$filename.'</font></li>';
                     fileSys($newFile);        //调用递归遍历下级目录
                 }else{
                     echo '<li>'.$filename.'</li>';
                 }
            }
        }
        echo '</ul>';
        
        //关闭目录
        closedir($mydir);
    }else{
        echo '参数不是一个目录<br />'   ;
    }
    
}


//调用函数
//echo getcwd().'是一个目录,目录内容如下:<br />';
fileSys();

 

posted @ 2017-08-11 18:47  皮皮留声机  阅读(181)  评论(0编辑  收藏  举报