PHP用递归的方法删除目录

来源:互联网 发布:effective java第2版 编辑:程序博客网 时间:2024/05/17 04:16

最近在写一个PHPCMS的文件管理器插件,在开发删除目录的功能的时候发现用PHP自带的rmdir()函数在文件夹不为空的时候是无法删除目录的,所以只能从最底层开始清空目录,这里就用到了递归的方法:



/***    删除目录*    @param    Character $dir 目录名称*/function deleteDir($dir){    //删除目录if($dir=='' || !count($dir)){return;}if(is_array($dir)){foreach($dir as $d){chmod($d, 0777);deleteDir($d);}}else{if(!($mydir=@dir($dir))){return;}while($file=$mydir->read()){$filename = $dir.DIRECTORY_SEPARATOR.$file;if(is_dir($filename) && $file!='.' && $file!='..'){chmod($filename, 0777);deleteDir($filename);}elseif(is_file($filename)){chmod($filename, 0777);unlink($filename);}}$mydir->close();chmod($dir, 0777);rmdir($dir);}}

原文转载自:http://blog.iyutian.com/archives/140.html