php创建和删除目录函数介绍和递归删除目录函数分享


Posted in PHP onNovember 18, 2014

mkdir() — 新建目录

? 语法:bool mkdir (string pathname [,int mode])

? 尝试新建一个由 pathname 指定的目录。

rmdir() — 删除目录
? 语法:bool rmdir ( string dirname )

? 尝试删除 dirname 所指定的目录。 该目录必须是空的,而且要有相应的权限。如果成功则返回 TRUE,失败则返回

FALSE。

unlink — 删除文件
? 语法:bool unlink ( string filename )

? 删除 filename。和 Unix C 的 unlink() 函数相似。如果成功则返回 TRUE,失败则返回 FALSE。

在PHP中,使用mkdir()函数只需要传入一个目录名即可很容易地建立一个新目录。但删除目录所使用的函数rmdir(),只能删除一个空目录并且目录必须存在。如果是非空的目录就需要先进入到目录中,使用unlink()函数将目录中的每个文件都删除掉,再回来将这个空目录删除。如果目录中还存在目录,而且子目录也非空,就要使用递归的方法了。自定义递归函数删除目录的程序代码如下所示:

<?php

//自定义函数递归的删除整个目录

function delDir($directory){

    if(file_exists($directory)){      //如果不存在rmdir()函数会出错

        if($dir_handle = @opendir($directory)){       //打开目录,并判断是否能成功打开

            while($filename = readdir($dir_handle)){       //循环遍历目录下的所有文件

               if($filename != "."&& $filename != ".."){       //一定要排除两个特殊的目录

                   $subFile = $directory."/".$filename;       //将目录下的子文件和当前目录相连

                   if(is_dir($subFile))        //如果为目录则条件成立

                   delDir($subFile);       //递归地调用自身函数,删除子目录

                   if(is_file($subFile))      //如果是文件则条件成立

                   unlink($subFile);           //直接删除这个文件

               }

            }

            closedir($dir_handle); //关闭文件资源

            rmdir($directory); //删除空目录

         }

      }

}

 

dirDir("phpMyAdmin"); //调用delDir()函数,将程序所在目录中的“phpMyAdmin”文件删除

?>

当然也可以通过调用操作系统命令“rm-rf”删除非空的目录,但也要从安全和跨平台方面考虑尽量不要去使用。

PHP 相关文章推荐
一棵php的类树(支持无限分类)
Oct 09 PHP
php实现的遍历文件夹下所有文件,编辑删除
Jan 05 PHP
深入phpMyAdmin的安装与配置的详细步骤
May 07 PHP
codeigniter教程之多文件上传使用示例
Feb 11 PHP
支持生僻字且自动识别utf-8编码的php汉字转拼音类
Jun 27 PHP
使用PHPMailer实现邮件发送代码分享
Oct 23 PHP
WordPress中编写自定义存储字段的相关PHP函数解析
Dec 25 PHP
PHP实现的简单异常处理类示例
May 04 PHP
Yii框架使用魔术方法实现跨文件调用功能示例
May 20 PHP
Symfony查询方法实例小结
Jun 28 PHP
php实现的统计字数函数定义与使用示例
Jul 26 PHP
PHP基于Closure类创建匿名函数的方法详解
Aug 17 PHP
PHP递归复制、移动目录的自定义函数分享
Nov 18 #PHP
PHP打开和关闭文件操作函数总结
Nov 18 #PHP
PHP文件读写操作相关函数总结
Nov 18 #PHP
PHP中通过fopen()函数访问远程文件示例
Nov 18 #PHP
PHP移动文件指针ftell()、fseek()、rewind()函数总结
Nov 18 #PHP
PHP文件锁函数flock()详细介绍
Nov 18 #PHP
php字符比较函数similar_text、strnatcmp与strcasecmp用法分析
Nov 18 #PHP
You might like
PHP常用函数小技巧
2008/09/11 PHP
php方法调用模式与函数调用模式简例
2011/09/20 PHP
浅谈PHP与C#的值类型指向区别的详解
2013/05/21 PHP
解析php file_exists无效的解决办法
2013/06/26 PHP
thinkphp 一个页面使用2次分页的实现方法
2013/07/15 PHP
Thinkphp中Create方法深入探究
2014/06/16 PHP
PHP实现算式验证码和汉字验证码实例
2015/03/09 PHP
如何简单地用YUI做JavaScript动画
2007/03/10 Javascript
浅谈jQuery中对象遍历.eq().first().last().slice()方法
2014/11/26 Javascript
jquery插件NProgress.js制作网页加载进度条
2015/06/05 Javascript
JavaScript实现页面跳转的几种常用方式
2015/11/28 Javascript
javascript 数组的定义和数组的长度
2016/06/07 Javascript
利用vue-router实现二级菜单内容转换
2016/11/30 Javascript
Bootstrap学习笔记 轮播(Carousel)插件
2017/03/21 Javascript
jQuery实现select下拉框获取当前选中文本、值、索引
2017/05/08 jQuery
ES6模块化的import和export用法方法总结
2017/08/08 Javascript
JavaScript伪数组用法实例分析
2017/12/22 Javascript
ajax与jsonp的区别及用法
2018/10/16 Javascript
vue 地区选择器v-distpicker的常用功能
2019/07/23 Javascript
关于在LayUI中使用AJAX提交巨坑记录
2019/10/25 Javascript
Python的Flask框架中@app.route的用法教程
2015/03/31 Python
python+selenium select下拉选择框定位处理方法
2019/08/24 Python
python线程定时器Timer实现原理解析
2019/11/30 Python
Python+Redis实现布隆过滤器
2019/12/08 Python
使用Python的Turtle库绘制森林的实例
2019/12/18 Python
python 线性回归分析模型检验标准--拟合优度详解
2020/02/24 Python
PyInstaller将Python文件打包为exe后如何反编译(破解源码)以及防止反编译
2020/04/15 Python
Python读取excel文件中带公式的值的实现
2020/04/17 Python
python要安装在哪个盘
2020/06/15 Python
Piercing Pagoda官网:耳环、戒指、项链、手链等
2020/09/28 全球购物
工程部主管岗位职责
2013/11/17 职场文书
经理秘书求职自荐信范文
2014/03/23 职场文书
《语言的突破》读后感3篇
2019/12/12 职场文书
C站最全Python标准库总结,你想要的都在这里
2021/07/03 Python
MySQL之select、distinct、limit的使用
2021/11/11 MySQL
浅谈css实现背景颜色半透明的两种方法
2021/12/06 HTML / CSS