Chinaunix首页 | 论坛 | 博客
  • 博客访问: 792617
  • 博文数量: 247
  • 博客积分: 166
  • 博客等级: 入伍新兵
  • 技术积分: 2199
  • 用 户 组: 普通用户
  • 注册时间: 2012-11-15 16:10
文章分类

全部博文(247)

文章存档

2017年(1)

2015年(63)

2014年(80)

2013年(94)

2012年(9)

分类: PHP

2013-07-22 17:48:16

用 PHP 自带的文件系统函数 rmdir() 删除目录时往往会遇到一个问题,那就是要删除的这个目录必须为空,否则会报错。


删除非空目录,先检查目录下有没有文件或文件夹,如果有,就用递归删除目录下的所有文件和文件夹,然后删除此目录。

具体操作如下:

1、函数定义

function deldir($dir) {
    $dh=opendir($dir);
    while ($file=readdir($dh)) {
        if($file!="." && $file!="..") {
            $fullpath=$dir."/".$file;
            if(!is_dir($fullpath)) {
                unlink($fullpath);
            } else {
                deldir($fullpath);
            }
        }
    }
    closedir($dh);
    if(rmdir($dir)) {
        return true;
    } else {
        return false;
    }
}


2、删除目录
function doDel(){
    $dir="./src/folder";
    if(deldir($dir)){
        echo("删除成功");
    }else{
        echo("删除失败");
    }
}


原理说明:

先检查此目录下是否有文件,如果有,是文件夹的话就再调用此函数删除,如果是文件就直接调用 unlink 删除,最后删除此目录。


注意事项:

确保有对文件夹的操作权限


阅读(2239) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~