删除文件夹下面的文件夹以及所有文件

作者:Liaodeity - 2015年09月29日

删除文件夹下面的所有文件夹以及所有的文件。可以用于清除缓存等文件的操作。

在使用该方法的时候可以对该文件夹是否存在等,做一些判断,不然删除一些不存在的文件夹将会报错

或者只删除文件保留文件夹

函数

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;
  }
}

使用方法

$re = deldir('cache');
if($re){
    echo 'clear success';
}else{
    echo 'clear error';
}

方法延伸

有得时候,我们要保留其目录结构,所有不对文件夹进行删除,只删除文件夹下面的文件,对文件夹进行保留。

就是去掉判断文件夹是否存在,等进行删除操作,经过这样的修改可以做到,不删除文件夹只删除文件。

大家可以将这两个方法进行合并。

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);
  return true;
}


本文作者: Liaodeity

本文链接: https://www.jianbaizhan.com/article/304

版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 3.0 许可协议。转载请注明出处!


 请勿发布不友善或者负能量的内容。审查将对发布广告等违规信息进行处罚!
Jasmine 8年前

路过路过