原文地址:http://www.manongjc.com/article/1316.html

php rmdir()函数用于删除目录,但是在使用这个函数删除目录之前,我们必须要做一些判断,首先要判断目录是否为空,其次要判断目录是否存在,具体请看下面描述。



php rmdir()函数用于删除目录,但在使用这个函数时,我们需要注意两点:

  1. 删除的目录必须为空
  2. 目录必须存在

因此,正确使用rmdir()函数删除目录的源代码如下:

检查目录是否为空,如果不为空,删除目录中的文件,如果目录中有子目录,还需要删除子目录。

<?php
// 说明: 删除非空目录的解决方案
// http://www.manongjc.com
function removeDir($dirName)
{
if(! is_dir($dirName))
{
return false;
}
$handle = @opendir($dirName);
while(($file = @readdir($handle)) !== false)
{
if($file != '.' && $file != '..')
{
$dir = $dirName . '/' . $file;
is_dir($dir) ? removeDir($dir) : @unlink($dir);
}
}
closedir($handle); return rmdir($dirName) ;
}
?>

其他阅读:

  • php dirname配合__FILE__ 和SCRIPT_FILENAME获取文件目录
  • php dirname()获取路径中的目录部分
  • php使用正则表达式处理路径
  • mysql count和sum的区别
  • php获取目录下的所有文件和子目录
  • php rmdir()删除目录的需要注意的几点的更多相关文章

    1. mkdir,rmdir,cp,rm,mv,cat,touch用法

      一.mkdir新建目录 1.进入tmp目录,查看该目录下面的子目录 [root@localhost ~]# cd /tmp[root@localhost tmp]# lshsperfdata_root ...

    2. Linux命令学习总结:rmdir

      命令简介: 该命令用用来删除空目录,如果目录非空,则会出现错误.可以使用rm删除目录中的文件后,使用rmdir删除目录.也可以使用rm -rf替代rmdir命令.这是一个非常简单的命令.   命令语法 ...

    3. Linux命令学习总结之rmdir命令的相关资料可以参考下

      这篇文章主要介绍了Linux命令学习总结之rmdir命令的相关资料,需要的朋友可以参考下(http://www.nanke0834.com) 命令简介: rmdir命令用用来删除空目录,如果目录非空, ...

    4. linux每日命令(7):rmdir命令

      rmdir是常用的命令,该命令的功能是删除空目录,一个目录被删除之前必须是空的.(注意,rm - r dir命令可代替rmdir,但是有很大危险性.)删除某目录时也必须具有对父目录的写权限. 一.命令 ...

    5. Linux基础命令---rmdir

      rmdir 删除一个空目录,可以同时删除途经的父目录,但是要确保父目录中没有其他内容. 此命令的适用范围:RedHat.RHEL.Ubuntu.CentOS.SUSE.openSUSE.Fedora. ...

    6. Node.js——fs模块(文件系统),创建、删除目录(文件),读取写入文件流

      /* 1. fs.stat 检测是文件还是目录(目录 文件是否存在) 2. fs.mkdir 创建目录 (创建之前先判断是否存在) 3. fs.writeFile 写入文件(文件不存在就创建,但不能创 ...

    7. 每天一个Linux命令(6)rmdir命令

           rmdir命令用来删除空目录. 利用rmdir命令可以从一个目录中删除一个或多个空的子目录.该命令从一个目录中删除一个或多个子目录,其中dirname表示目录名.如果dirname中没有指定 ...

    8. windows7命令帮助大全

      有关某个命令的详细信息,请键入 HELP 命令名ASSOC 显示或修改文件扩展名关联.ATTRIB 显示或更改文件属性.BREAK 设置或清除扩展式 CTRL+C 检查.BCDEDIT 设置启动数据库 ...

    9. Linux常用命令(一)

      Linux常用命令 1. pwd查看当前路径(Print Working Directory)    [root@CentOS ~]# pwd/root 2. cd .. 返回上一级 .. 表示上一级 ...

    随机推荐

    1. get跟post编码--转

      1.Get是用来从服务器上获得数据(没有请求体),而Post是用来向服务器上传递数据(包含请求体). 2.Get将表单中数据的按照variable=value的形式,添加到action(服务)所指向的 ...

    2. 从MySQL到Redis 提升数据迁移的效率

      场景是从MySQL中将数据导入到Redis的Hash结构中.当然,最直接的做法就是遍历MySQL数据,一条一条写入到Redis中.这样可能没什么错,但是速度会非常慢.而如果能够使MySQL的查询输出数 ...

    3. scala vs java 相同点和差异

      本贴是我摘抄自国外网站,用作备忘,也作为分享! Similarities between Scala and Java Following are some of the major similari ...

    4. struts checkbox选中

      <input type="checkbox" id="something" name="something" /> ↓ < ...

    5. [转]java生成随机数字和字母组合

      摘自 http://blog.csdn.net/xiayaxin/article/details/5355851 import java.util.Random; public String getC ...

    6. HAML学习

      来源:http://ningandjiao.iteye.com/blog/1772845 一个技术能够风靡,一定是有它的原因的,在熟悉之前,我们没有资格去对它做任何的判断. Haml 是一种简洁优美的 ...

    7. svn 同步脚本

      REPOS="$1"REV="$2"export LANG=en_US.UTF-8/usr/bin/svn update /home/wwwroot/yswif ...

    8. SQL Server 2012 数据库备份

      既能备份到网络中的共享文件夹中,也能备份到本地 USE [AdventureWorks2012] GO /****** Object: StoredProcedure [dbo].[pr_BatchB ...

    9. C#中判断子窗体是否存在

      可在父窗体中定义一个全局变量 public static Form form; 然后在秀出子窗体的点击事件中增加加下代码 if (form == null) { //窗体不存在时,实例化子窗体,并显示 ...

    10. 初步理解MVC

      一.Asp.net WebForms 与Asp.net MVC 概念 Asp.net是创建WEB应用的框架,MVC是能够用更好的方法来组织并管理代码的一种更高级架构体系. 我们可将原来的Asp.net ...