PHP关于删除文件夹下面的所有子目录(包括文件夹)

发布网友 发布时间:2022-04-06 01:51

我来回答

5个回答

懂视网 时间:2022-04-06 06:12

php删除多级目录的方法:使用deltree函数的方法,代码为【function deltree($pathdir) if(is_empty_dir($pathdir)){rmdir($pathdir)}】。

php删除多级目录的方法:

deltree($path);rmdir($path)才能删除这个目录能

function deltree($pathdir)
{
echo $pathdir;//我调试时用的
if(is_empty_dir($pathdir))//如果是空的
 {
 rmdir($pathdir);//直接删除
 }
 else
 {//否则读这个目录,除了.和..外
 $d=dir($pathdir);
 while($a=$d->read())
 {
 if(is_file($pathdir.'/'.$a) && ($a!='.') && ($a!='..')){unlink($pathdir.'/'.$a);}
 //如果是文件就直接删除
 if(is_dir($pathdir.'/'.$a) && ($a!='.') && ($a!='..'))
 {//如果是目录
  if(!is_empty_dir($pathdir.'/'.$a))//是否为空
  {//如果不是,调用自身,不过是原来的路径+他下级的目录名
  deltree($pathdir.'/'.$a);
  }
  if(is_empty_dir($pathdir.'/'.$a))
  {//如果是空就直接删除
  rmdir($pathdir.'/'.$a);
  }
 }
 }
 $d->close();
 echo "必须先删除目录下的所有文件";//我调试时用的
 }
}
function is_empty_dir($pathdir)
{//判断目录是否为空,我的方法不是很好吧?只是看除了.和..之外有其他东西不是为空,PHP有没有给出什么
函数?
$d=opendir($pathdir);
$i=0;
 while($a=readdir($d))
 {
 $i++;
 }
closedir($d);
if($i>2){return false;}
else return true;
}

想了解更多编程学习,敬请关注php培训栏目!

热心网友 时间:2022-04-06 03:20


//递归删除所有文件夹

function delDirAndFile( $dirName ){

if ( @$handle = opendir( "$dirName" ) ) {

while ( false !== ( $item = readdir( $handle ) ) ) {

if ( $item != "." && $item != ".." ) {

if ( is_dir( "$dirName/$item" ) ) {

delDirAndFile( "$dirName/$item" );

} else {

if( unlink( "$dirName/$item" ) ){

echo "成功删除文件: $dirName/$item".'<br>';

}

}

}

}

closedir( $handle );

if( rmdir( "$dirName/$item" ) ){

echo "成功删除目录:$dirName".'<br>';

}

}else{

echo "文件夹不存在!";

}

}

热心网友 时间:2022-04-06 04:38

function deleteAll($path) {
    $op = dir($path);
    while(false != ($item = $op->read())) {
        if($item == '.' || $item == '..') {
            continue;
        }
        if(is_dir($op->path.'/'.$item)) {
            deleteAll($op->path.'/'.$item);
            rmdir($op->path.'/'.$item);
        } else {
            unlink($op->path.'/'.$item);
        }
    
    }   
}

热心网友 时间:2022-04-06 06:13

存在一点小问题:

function check($path){
if(file_exists($path)){
//echo dirname($path).'<br />';
$dh = opendir($path);
while($item = readdir($dh)){
if('.' == $item || '..' == $item){
continue;
}else if(is_dir($path.'/'.$item)){
check($path.'/'.$item);
}else{
unlink($path.'/'.$item);//删除文件
}
}
closedir($dh);
if (rmdir($path.'/'.$item)){
                echo "成功删除目录",$path,"<br />";
        }
}
}


目录路径没对上

热心网友 时间:2022-04-06 08:04

function deleteRecursive($path)
{
    $op = dir($path);
    while ($item = $op->read()) {
        if ($item == '.' || $item == '..') {
            continue;
        } else if (is_dir($op->path . '/' . $item)) {
            deleteRecursive($op->path . '/' . $item);
        } else {
            unlink($op->path . '/' . $item);
        }
    }
    rmdir($path);
}

这样写更好

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com