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

这是什么原因,错在哪里了呢?大家帮帮忙,谢了代码如下<?php$path='./a';functioncheck($path){if(file_exists($path)... 这是什么原因,错在哪里了呢?大家帮帮忙,谢了
代码如下
<?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);
?>
展开
 我来答
孤城浪子55555
推荐于2016-08-23
知道答主
回答量:38
采纳率:100%
帮助的人:22.3万
展开全部

//递归删除所有文件夹

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

}

}

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
骑着小猪过马路
2015-10-10
知道答主
回答量:10
采纳率:0%
帮助的人:5.2万
展开全部
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);
        }
    
    }   
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
pangyiguang
推荐于2016-05-10 · TA获得超过1604个赞
知道小有建树答主
回答量:795
采纳率:100%
帮助的人:650万
展开全部

存在一点小问题:

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


目录路径没对上

本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
826336127
2018-08-07
知道答主
回答量:4
采纳率:0%
帮助的人:2965
展开全部
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);
}

这样写更好

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式