php 删除空目录及空子目录

步骤:

1.遍历目录及子目录

2.使用 scandir 判断目录是否为空,为空则使用rmdir 删除。


<?php
/** 删除所有空目录
* @param string $path 目录路径
*/
function rm_empty_dir($path){
    if(is_dir($path) && ($handle = opendir($path))!==false){
        while(($file=readdir($handle))!==false){     // 遍历文件夹
            if($file!='.' && $file!='..'){
                $curfile = $path.'/'.$file;          // 当前目录
                if(is_dir($curfile)){                // 目录
                    rm_empty_dir($curfile);          // 如果是目录则继续遍历
                    if(count(scandir($curfile))==2){ // 目录为空,=2是因为. 和 ..存在
                        rmdir($curfile);             // 删除空目录
                    }
                }
            }
        }
        closedir($handle);
    }
}

$folder = '目标文件夹';

rm_empty_dir($folder);
?>


使用 shell 则简单很多:



find 目标文件夹 -mindepth 1 -depth -empty -type d -exec rm -r {} \;


DickerYang