删除文件目录的两种方式

在项目开发的过程中,碰到对文件目录进行操作是常有的事,以下简要分享两种方式删除目录的代码,请往下看!

1、删除目录方式一

该方式也是最常用的方式

/**
* 删除目录下所有文件
* @param $sourceDir
* @return bool
*/
function delDir($sourceDir)
{
    if(!is_dir($sourceDir)){
        return false;
    }
    
    $dir = rtrim($sourceDir, '/').'/';
    
    $op = opendir($dir);
    
    while(($file = readdir($op)) !== false){
        if($file == '.' || $file == '..'){
            continue;
        }
        
        $filePath = $dir.$file;
        if(is_dir($filePath)){
            delDir($filePath);
        }else{
            unlink($filePath);
        }
    }
    
    closedir($op);
    //删除当前目录
    rmdir($dir);
}

2、删除目录方式二

这种方式更微妙和简要

/**
* 删除目录
* @param $dir  请传入一个真实存在的目录
*/
function removeDir($dir)
{
    $dir = rtrim($dir, '/');
    
    foreach (scandir($dir) as $item) {
        if ($item == '.' || $item == '..') {
            continue;
        }

        $filePath = join(DIRECTORY_SEPARATOR, array($dir, $item));
        if (is_dir($filePath)) {
            removeDir($filePath);
        } else {
            unlink($filePath);
        }
    }

    rmdir($dir);
}

原文地址:https://www.cnblogs.com/renzhicai/p/7727968.html