递归的方式遍历文件夹与所有子文件

由于PHP写起来比较简单,所以这次我们用PHP来讲解递归的方式遍历目录。这个算法主要的功能是通过递归的方式来把一个目录里面的所有的文件夹与所有的子文件遍历出来。

下面是代码:

$dir = './';    //需要遍历的目录    根目录为'./'

run($dir);    //执行遍历函数

function run($dir){

    $box = opendir($dir);    //按照路径打开文件夹
    
    while($file = readdir($box)){
        if($file != '.' && $file != '..'){

            $filepath = $dir . '/' . $file;    //记录文件的路径
            
            /**
             *    以层的方式输出目录
             **/
            for($i = 0; $i < substr_count($filepath, '/'); $i ++){
                echo '&nbsp;&nbsp;&nbsp;&nbsp;';
            }
            
            /**
             *    判断文件的类型
             **/
            if(is_dir($filepath)){
                echo '[dir]' . $file . '<br>';
                
                run($filepath);
                
            }else{
                echo '[file]' . $file . '<br>';
            }
        }
    }
    
    closedir($box);    //关闭已打开的文件夹
}

标签:计算机, 程序, 设计, 常用, 算法, 递归, 方式, 遍历, 文件夹, 所有, 文件

该文章由 Shiqi 原创并发布在 被遗忘的曙光 技术博客

转载请标明来源:https://blog.fdawn.com/PHP/12.html

仅有 1 条评论

  1. Stretch

    I don't know who you wrote this for but you helped a bretohr out.

添加新评论