/**
* 递归创建目录
* @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($path));
return mkdir($path);
}
function mk_Dir($path){
// 目录存在返回 ture
if(is_dir($path)){
return true;
}
// 父目录存在 或 递归找到父目录,创建目录
return is_dir(dirname($path)) || mk_Dir(dirname($path)) ? mkdir($path) : "false";
}
/**
* 迭代创建目录(我理解的迭代就是从最小积累到最大的过程)
* @param [string] $path [创建目录名]
* @return [type] [description]
*/
function mk_dir($path){
$arr = array();
// 将目录分解存入数组
while(!is_dir($path)){
array_unshift($arr,$path); // 把元素 插入数组头部
$path = dirname($path);
}
if(empty($arr)){
return ture;
}
foreach($arr as $v){
mkdir($v);
}
}

在php5 以后可以使用 mkdir第三个参数,递归创建目录 mkdir("目录名",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; // 会在页面上输出1
}

php递归创建目录的更多相关文章

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

    lua中的 lfs.mkdir lfs.rmdir只能针对单个目录,且lfs.rmdir不能清空文件夹 于是我想到了使用os.execute 递归创建目录如下os.execute("mkdi ...

  2. php 递归创建目录、递归删除非空目录、迭代创建目录

    递归创建目录 方法一 function mk_dir($path){ if(is_dir($path)){ //参数本身是一个目录 return true; } if(is_dir(dirname($ ...

  3. mkdir递归创建目录

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

  4. PHP 递归创建目录

    /* 用迭代的方法递归创建目录 其实在PHP5.0.0之后mkdir就已经能递归创建目录了. 这里主要是自己学习迭代,所以拿创建级联目录开刀了. 开发中应该写mkdir('./a/b/c/d/e',0 ...

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

    /* 递归自身调用自身,每次调用把问题简化,直到问题解决 即:把大的任务拆成相同性质的多个小任务完成 */ /* function recsum($n){ if($n>1){ return $n ...

  6. nodejs递归创建目录,同步和异步方法

    nodejs递归创建目录,同步和异步方法.在官方API中只提供了最基本的方法,只能创建单级目录,如果要创建一个多级的目录(./aaa/bbb/ccc)就只能一级一级的创建,感觉不是很方便,因此简单写了 ...

  7. nodejs 递归创建目录

    nodejs没有递归创建目录的方法,以前创建的时候是将目录通过path.sep,然后再一步步判断,这个方法在windows下面遇到盘符的时候,然后蛋疼了.今天又用到了这个功能,突然想到了另外一种方法, ...

  8. Linux mkdir 如何递归创建目录?

    mkdir 如何递归创建目录? mkdir –vp 目录1/目录2/目录3   详细介绍: linux mkdir 命令用来创建指定的名称的目录,要求创建目录的用户在当前目录中具有写权限,并且指定的目 ...

  9. nodejs递归创建目录

    var fs = require("fs"); var path = require("path"); // 递归创建目录 异步方法 function mkdi ...

随机推荐

  1. 【Node】package.json

    npm的package.json中文文档https://github.com/ericdum/mujiang.info/issues/6

  2. java基于xml配置的通用excel单表数据导入组件(一、实际应用过程)

    主要应用技术:poi + betwixt + reflect 一.实际应用过程 1.创建与目标表结构一样,表名为‘{目标表名}_import’的临时表: 2.创建用于存储导入问题数据的表:t_impo ...

  3. uva 10047 the monocyle (四维bfs)

    算法指南白书 维护一个四维数组,走一步更新一步 #include<cstdio> #include<cstring> #include<queue> #includ ...

  4. Bzoj 1532: [POI2005]Kos-Dicing 二分,网络流

    1532: [POI2005]Kos-Dicing Time Limit: 5 Sec  Memory Limit: 64 MBSubmit: 1373  Solved: 444[Submit][St ...

  5. android camera(二):摄像头工作原理、s5PV310 摄像头接口(CAMIF)

    一.摄像头工作原理 上一篇我们讲了摄像头模组的组成,工作原理,做为一种了解.下面我们析摄像头从寄存器角度是怎么工作的.如何阅读摄像头规格书(针对驱动调节时用到关键参数,以GT2005为例). 规格书, ...

  6. ubuntu64bits环境下搭建Opencl的环境

    此文介绍 ubuntu 平台下配置 AMD/ATI Opencl 环境,我是ubuntu 12.04. 主要分为六个步骤: 1. Take a look at your hardware to mak ...

  7. 5 approach to load UIView from Xib

    After the past few years I found that the only manageable way for creating/maintaining view (or any ...

  8. hdoj 1166 敌兵布阵【线段树求区间最大值+单点更新】

    敌兵布阵 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Submis ...

  9. flashback drop(2015-2-3学习日记)

    知识面是由知识点组成的,你在研究某一个知识点的时候常常会遇到另一个知识点,然后你去研究那个知识点,又会带出更多的知识点,最终组成了知识面. 今天在看书的时候看到一个删除表的语句: DROP TABLE ...

  10. chrome 插件 vimium 快捷键大全

    DESCRIPTION vimium是一款让你在chrome浏览器能方便地使用键盘操作浏览器的插件.虽然和firefox相比还有些许不足(比如不能按到一些按钮之类的),但是vimium还是做到了能在9 ...