递归创建目录与删除目录

递归创建级联目录,递归删除级联目录,例如:./a/b/c/d/e

<?php
//递归创建目录
function mk_dir($path){
    //判断目录是否存在
    if(is_dir($path)){
        return true;
    }
    //如果父目录存在,则直接创建
    if(is_dir(dirname($path))){
        mkdir($path);
        return true;
    }
    //如果父目录不存在,则递归
    mk_dir(dirname($path));
    //父目录已存在,则返回创建该子目录
    return mkdir($path);
}
echo mk_dir(‘./a/b/f/d/sa/as‘)?‘ok‘:‘fail‘;
//第二种方式:难理解
function printpath($path){
    if(is_dir($path)){
        return true;
    }
    // 父目录存在或你帮我创建父目录,再创建子目录
    return is_dir(dirname($path))||printpath(dirname($path))?mkdir($path):false;
}
echo printpath(‘./b/as/ds‘)?‘OK‘:‘FAIL‘;
//函数递归创建目录mkdir(目录,权限默认0777,是否递归创建);
mkdir(‘./aa/bb/cc‘,0777,true);

//递归删除目录
function deldir($path){
    //如果不是目录,直接返回
    if(!is_dir($path)){
        return null;
    }
    //打开目录
    $dh=opendir($path);
    while(($row=readdir($dh))!==false){
        if($row==‘.‘||$row==‘..‘){
            continue;
        }
        //判断是否是普通文件
        if(!is_dir($path.‘/‘.$row)){
           unlink($path.‘/‘.$row);
        }else{
            deldir($path.‘/‘.$row);
        }
    }
    closedir($dh);
    rmdir($path);
    return true;
}
echo deldir(‘./aa‘)?‘删了‘:‘出错了‘;
?>
时间: 2024-08-08 13:34:06

递归创建目录与删除目录的相关文章

mkdir递归创建目录

mkdir递归创建目录 rmdir递归删除目录 -p:父目录为空时,一并进行创建-v:命令执行结果可视化mkdir -pv /tmp/x/y/zrmdir -p /tmp/x/y/z mkdir -pv {a,b}_{c,d}

递归创建、删除目录的几个函数

递归创建目录1: 需要#include <shlwapi.h>,并且配置好shlwapi.ib BOOL CreateDirTree( LPCTSTR lpPath ) { if( NULL == lpPath || _tcslen(lpPath)==0 ) { return FALSE; } if( ::PathFileExists( lpPath) || ::PathIsRoot(lpPath) ) return TRUE; TCHAR szParentpath[MAX_PATH] = _

创建目录和删除目录

命令:mkdir   ;  rmdir  :  tree mkdir ----make directory 语法: mkdir [-mp] [目录名称] mkdir 如果后面不加选项,直跟目录,会在最后目录的上一级建立子目录,若上一级不存在则不能建立,即不能建立一连串的目录. 如要建立一连串目录,可使用 mkdir -p [目录名称]  .  mkdir -v [目录名称]  意思是建立过程可视化. [[email protected] ~]# mkdir 234 [[email protect

php递归创建目录

/** * 递归创建目录 * @param [string] $path [创建的目录] * @return [type] [description] */ function mk_Dir($path){ // 如果目录存在返回 ture if(is_dir($path)){ return true; } // 如果上级目录存在 创建目录 if(is_dir(dirname($path))){ return mkdir($path); } // 递归 查找父目录 mk_Dir(dirname($

lua中清空目录和递归创建目录

lua中的 lfs.mkdir lfs.rmdir只能针对单个目录,且lfs.rmdir不能清空文件夹 于是我想到了使用os.execute 递归创建目录如下os.execute("mkdir ooxx\\ooxx\\ooxx\\ooxx) --windowsos.execute("mkdir -p ooxx/ooxx/ooxx) --unix,linux like 清空目录如下os.execute("del ooxx\) --windowsos.execute("

php之递归调用,递归创建目录

/* 递归自身调用自身,每次调用把问题简化,直到问题解决 即:把大的任务拆成相同性质的多个小任务完成 */ /* function recsum($n){ if($n>1){ return $n + recsum($n-1); }else{ return 1; } } //递归调用 echo recsum(10).'<br />'; */ //最先调用,最后返回 //递归:一个函数,自身调用自身,必有终止条件 function sum($n){ if($n>1){ echo $n.

两个自己函数创建目录和删除目录,考虑了多级目录的情况

使用shell api的话删除目录和创建目录都是非常简单的一个函数调用就可以,但是如果是使用为win32里面基本的函数的话,就稍微会复杂点.不过个人感觉shell api里面删除和创建目录的函数也是调用win32里面这些基本的函数. 创建目录, 可以创建多级目录,代码拷过去稍稍修改可用: int IPath::SetDirectory(LPCTSTR lptStr) { _stprintf_s(IPath::s_tszPath, _T("%s"), lptStr ); char* sz

Delphi阿里云存储对象【支持上传文件、下载文件、删除文件、创建目录、删除目录、Bucket操作等】

Delphi阿里云存储对象             阿里云api文档 [Delphi阿里云存储对象]支持 获取Bucket列表.设置Bucket权限).创建Bucket.删除Bucket.获取文件列表.上传文件.下载文件.删除文件.读取文件.判断文件是否存在.创建目录.删除目录等功能 原文地址:https://www.cnblogs.com/zhimamaigua/p/11020392.html

linux 创建目录和删除目录

linux创建目录 mkdir +目录名字 mkdir  /tmp/123/   rmdir 绝对路径        mkdir 123 mkdir 相对路径 mkdir  -pv /tmp/123/234  一次创建二三级目录 删除目录 rmdir+删除目录 rmdir不能删除非空目录 rmdir -pv /tmp/123/234  一次删除关联二三级空目录