首页 小组 文章 搜索 我的社区 用户

递归删除文件以及递归拷贝文件

2018-09-17 00:46:31
0
701

关于递归删除文件以及递归拷贝文件的代码

/**
 * 递归拷贝文件夹及其下面的所有文件
 * @param string $dir 规定要复制的文件夹根目录
 * @param string $todir 定复制文件的目的地
 * @return bool 状态
 */
private function copyFileAll($dir = "",$todir = ""){
    if (!is_dir($dir)) {
        return false;
    }
    if (!is_dir($todir)) {
        mkdir($todir,0777,true);
    }
    $dirArray = scandir($dir);
    foreach ($dirArray as $key => $value) {
        if ($value !== '.' && $value !== '..'){
            if (is_dir($dir.'/'.$value)) $this->copyFileAll($dir.'/'.$value,$todir.'/'.$value);
            copy($dir.'/'.$value,$todir.'/'.$value);
        }
    }

    return true;
}

/**
 * 遍历删除文件夹下面的所有文件
 * @param string $dir 文件夹路径
 * @return bool 删除是否成功的状态
 */
private function delectFileAll($dir){
    if (!is_dir($dir)) return false;
    $dirArray = scandir($dir);
    foreach ($dirArray as $key => $value) {
        if ($value !== '.' && $value !== '..'){
            if (is_dir($dir.'/'.$value)){
                $this->delectFileAll($dir.'/'.$value);
                rmdir($dir.'/'.$value);
            }elseif (is_file($dir.'/'.$value)){
                unlink($dir.'/'.$value);
            }
        }
    }
    rmdir($dir);
    return true;
}


用户评论