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 相关文章推荐
一个可以找出源代码中所有中文的工具
Oct 25 PHP
php 多线程上下文中安全写文件实现代码
Dec 28 PHP
php中判断字符串是否全是中文或含有中文的实现代码
Sep 16 PHP
介绍一些PHP判断变量的函数
Apr 24 PHP
php缩放gif和png图透明背景变成黑色的解决方法
Oct 14 PHP
PHP之uniqid()函数用法
Nov 03 PHP
php中ltrim()、rtrim()与trim()删除字符空格实例
Nov 25 PHP
从wamp到xampp的升级之路
Apr 08 PHP
PHP实现获取文件后缀名的几种常用方法
Aug 08 PHP
yii插入数据库防并发的简单代码
May 27 PHP
php swoole多进程/多线程用法示例【基于php7nts版】
Aug 12 PHP
php设计模式之抽象工厂模式分析【星际争霸游戏案例】
Jan 23 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
Oracle Faq(Oracle的版本)
2006/10/09 PHP
PHP设计模式之责任链模式的深入解析
2013/06/13 PHP
php中file_get_contents()函数用法实例
2019/02/21 PHP
Javascript实例教程(19) 使用HoTMetal(7)
2006/12/23 Javascript
获取网站跟路径的javascript代码(站点及虚拟目录)
2009/10/20 Javascript
js 点击页面其他地方关闭弹出层(示例代码)
2013/12/24 Javascript
jquery实现弹出div,始终显示在屏幕正中间的简单实例
2014/03/08 Javascript
全面兼容的javascript时间格式化函数(比较实用)
2014/05/14 Javascript
javaScript事件机制兼容【详细整理】
2016/07/23 Javascript
全面解析Angular中$Apply()及$Digest()的区别
2016/08/04 Javascript
jQuery插件ContextMenu自定义图标
2017/03/15 Javascript
axios发送post请求springMVC接收不到参数的解决方法
2018/03/05 Javascript
JS/HTML5游戏常用算法之追踪算法实例详解
2018/12/12 Javascript
python脚本实现分析dns日志并对受访域名排行
2014/09/18 Python
python的类方法和静态方法
2014/12/13 Python
Python数据库的连接实现方法与注意事项
2016/02/27 Python
python实现求解列表中元素的排列和组合问题
2018/03/15 Python
Python队列RabbitMQ 使用方法实例记录
2019/08/05 Python
Python 用matplotlib画以时间日期为x轴的图像
2019/08/06 Python
Python常用模块logging——日志输出功能(示例代码)
2019/11/20 Python
Python PyQt5运行程序把输出信息展示到GUI图形界面上
2020/04/27 Python
Django URL参数Template反向解析
2020/11/24 Python
顶级宝石首饰网络零售商:Angara
2016/10/25 全球购物
英国顶级水晶珠宝零售商之一:Tresor Paris
2019/04/27 全球购物
Vrbo西班牙:预订您的度假公寓(公寓、乡村房屋…)
2020/04/27 全球购物
EJB需直接实现它的业务接口或Home接口吗,请简述理由
2016/11/23 面试题
创立科技Java面试题
2015/11/29 面试题
入党积极分子自我鉴定
2014/02/18 职场文书
马丁路德金演讲稿
2014/05/19 职场文书
法制教育演讲稿
2014/09/10 职场文书
同学聚会祝酒词
2015/08/10 职场文书
初中体育教学随笔
2015/08/15 职场文书
2016大学迎新晚会开场白
2015/11/24 职场文书
党校培训学习心得体会
2016/01/06 职场文书
Vue+Flask实现图片传输功能
2022/04/01 Vue.js
vue本地构建热更新卡顿的问题“75 advanced module optimization”完美解决方案
2022/08/05 Vue.js