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

这是什么原因,错在哪里了呢?大家帮帮忙,谢了
代码如下
<?php
$path = './a';
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($item)){
check($path.'/'.$item);
}else{
unlink($path.'/'.$item);//删除文件
}
}
closedir($dh);
if (rmdir($path.'/'.$item)){
echo "成功删除目录",$path,"<br />";
}
}
}
check($path);
?>

第1个回答  推荐于2016-08-23

//递归删除所有文件夹

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 "文件夹不存在!";

}

}

第2个回答  2015-10-10
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);
        }
    
    }   
}

第3个回答  推荐于2016-05-10

存在一点小问题:

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


目录路径没对上

本回答被提问者采纳
第4个回答  2018-08-07
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);
}

这样写更好

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网