zoukankan      html  css  js  c++  java
  • php递归创建多级目录

    bool mkdir ( string $pathname [, int $mode = 0777 [, bool $recursive = false [, resource $context ]]] )

    php函数mkdir 尝试新建一个由 path 指定的目录。

    默认的 mode 是 0777,意味着最大可能的访问权。

    php默认的mkdir一次只能创建一层目录,如果在当前目录下创建一个div/css/layout 的目录就需要逐层逐层的先创建div,再创建div/css 再创建 div/css/layout,然而我们希望能让程序自动帮我们完成这个过程。

    (如果mkdir("images/".$date);如果没有images这个目录,则会报错。

    其实思路也很简单,1.先判断 div目录是否存在,不存在则创建;2.判断子目录 div/css 是否存在,不能存在则创建,3.在第二步中以子目录作为参数递归调用函数本身。也可以按相反顺序来,1.先判断最底层目录div/css/layout是否存在;2.判断div/css/layout的上层目录div/css是否存在,不存在则以div/css作为参数递归进行。。

    function mkdirs($dir)  
    {  
    if(!is_dir($dir))  
    {  
    if(!mkdirs(dirname($dir))){  
    return false;  
    }  
    if(!mkdir($dir,0777)){  
    return false;  
    }  
    }  
    return true;  
    }  
    mkdirs('div/css/layout');  
    同样的思路,php用rmdir和unlink递归删除多级目录的代码:  
    function rmdirs($dir)  
    {  
    $d = dir($dir);  
    while (false !== ($child = $d->read())){  
    if($child != '.' && $child != '..'){  
    if(is_dir($dir.'/'.$child))  
    rmdirs($dir.'/'.$child);  
    else unlink($dir.'/'.$child);  
    }  
    }  
    $d->close();  
    rmdir($dir);  
    } 
  • 相关阅读:
    UML类图与面向对象设计原则
    java学习:用反射构造bean
    Lucene基础(一)--入门
    Lucene基础(二)--索引的操作
    Lucene基础(三)-- 中文分词及高亮显示
    Lucene基础(四)-- 结合数据库使用
    JMS
    深入浅出JMS(一)——JMS简介
    深入浅出JMS(二)——JMS的组成
    八大排序算法
  • 原文地址:https://www.cnblogs.com/youxin/p/3013264.html
Copyright © 2011-2022 走看看