php判断并删除空目录及空子目录的方法

本文实例讲述了php判断并删除空目录及空子目录的方法。分享给大家供大家参考。具体实现方法如下:

步骤如下:

1.遍历目录及子目录
2.使用 scandir 判断目录是否为空,为空则使用rmdir 删除。

<?php
/** 删除所有空目录
* @param String $path 目录路径
*/
function rm_empty_dir($path){
  if(is_dir($path) && ($handle = opendir($path))!==false){
    while(($file=readdir($handle))!==false){// 遍历文件夹
      if($file!='.' && $file!='..'){
        $curfile = $path.'/'.$file;// 当前目录
        if(is_dir($curfile)){// 目录
          rm_empty_dir($curfile);// 如果是目录则继续遍历
          if(count(scandir($curfile))==2){//目录为空,=2是因为.和..存在
            rmdir($curfile);// 删除空目录
          }
        }
      }
    }
    closedir($handle);
  }
}
$folder = '目标文件夹';
rm_empty_dir($folder);
?> 

使用 shell 则简单很多:

find 目标文件夹 -mindepth 1 -depth -empty -type d -exec rm -r {} \;

希望本文所述对大家的php程序设计有所帮助。

(0)

相关推荐

  • PHP使用内置dir类实现目录遍历删除

    本文实例讲述了PHP使用内置dir类实现目录遍历删除的方法.分享给大家供大家参考.具体实现方法如下: function clearDir($dir) { if (file_exists($dir)) { if(!is_dir($dir)) exit("{$dir}不是一个目录"); else { $dirObj = dir($dir); while ($file = $dirObj->read()) { if (is_dir($dir .'/'. $file) &&

  • PHP删除指定目录中的所有目录及文件的方法

    本文实例讲述了PHP删除指定目录中的所有目录及文件的方法.分享给大家供大家参考.具体实现方法如下: <?php /* * * 删除指定目录中的所有目录及文件(或者指定文件) * 可扩展增加一些选项(如是否删除原目录等) * 删除文件敏感操作谨慎使用 * @param $dir 目录路径 * @param array $file_type指定文件类型 */ function delFile($dir,$file_type='') { if(is_dir($dir)){ $files = scand

  • php通过rmdir删除目录的简单用法

    本文实例讲述了php通过rmdir删除目录的简单用法.分享给大家供大家参考.具体分析如下: php可以通过rmdir()函数删除服务器上的目录,下面代码里用到了is_dir()函数,该函数用于判断指定的字符串是否是目录,删除成功返回True,否则返回False <?php if (!is_dir('exampledir')) { mkdir('exampledir'); } rmdir('exampledir'); ?> 希望本文所述对大家的php程序设计有所帮助.

  • php实现删除空目录的方法

    本文实例讲述了php实现删除空目录的方法.分享给大家供大家参考.具体分析如下: php中可以通过rmdir()函数删除一个空目录 <?php if (file_exists("/temp/test")) { rmdir("/temp/test"); print("Directory removed.\n"); } else { print("Directory does not exist.\n"); } ?> 上

  • php删除指定目录的方法

    本文实例讲述了php删除指定目录的方法.分享给大家供大家参考.具体分析如下: 这段代码可实现递归删除子目录的功能 <?php /** * Delete a file, or a folder and its contents * (recursive algorithm) * @author Aidan Lister <aidan@php.net> * @version 1.0.3 * @param string $dirname Directory to delete * @retur

  • php实现用于删除整个目录的递归函数

    本文实例讲述了php实现用于删除整个目录的递归函数.分享给大家供大家参考.具体实现方法如下: <?php function delete_directory($dir) { if ($dh = @opendir($dir)) { while (($file = readdir ($dh)) != false) { if (($file == ".") || ($file == "..")) continue; if (is_dir($dir . '/' . $

  • php遍历删除整个目录及文件的方法

    本文实例讲述了php遍历删除整个目录及文件的方法.分享给大家供大家参考.具体分析如下: 我们可以使用RecursiveDirectoryIterator 和 RecursiveIteratorIterator删除目录和子目录及文件,子目录将先与父目录删除 <?php function cleanup_directory($dir) { $iter = new RecursiveDirectoryIterator($dir); foreach (new RecursiveIteratorItera

  • php判断并删除空目录及空子目录的方法

    本文实例讲述了php判断并删除空目录及空子目录的方法.分享给大家供大家参考.具体实现方法如下: 步骤如下: 1.遍历目录及子目录 2.使用 scandir 判断目录是否为空,为空则使用rmdir 删除. <?php /** 删除所有空目录 * @param String $path 目录路径 */ function rm_empty_dir($path){ if(is_dir($path) && ($handle = opendir($path))!==false){ while((

  • Linux 删除特殊字符文件名或目录的方法

    通过文件的inode号删除文件 先用ls -i 找出要删除文件的inode 号 ls -i |grep xxxxxx|awk '{print $2}'|xargs -i rm -f {} xxxxxx为文件的 inode 号 通过文件大小删除文件 删除当前目录以及所有子目录下的文件大小为零的文件 find ./ -size 0 -exec rm {} \; 删除当前目录下文件大小为零的文件(子目录不删除) find ./ -maxdepth 1 -empty -type f -print -de

  • Golang 删除文件并递归删除空目录的操作

    目的: 删除文件之后,如果目录为空,递归删除为空的目录. svr.dataDir指目录的最外层,递归删除目录的时候判断到这一层即可. eg:/Users/danny/data func deleteFileOnDisk(localPath string) { log.Debugf("remove file: %s", localPath) if err := os.Remove(localPath); err != nil { log.Error(err) } dirsList :=

  • python实现删除文件与目录的方法

    本文实例讲述了python实现删除文件与目录的方法.分享给大家供大家参考.具体实现方法如下: os.remove(path) 删除文件 path. 如果path是一个目录, 抛出 OSError错误.如果要删除目录,请使用rmdir(). remove() 同 unlink() 的功能是一样的 在Windows系统中,删除一个正在使用的文件,将抛出异常.在Unix中,目录表中的记录被删除,但文件的存储还在. os.removedirs(path) 递归地删除目录.类似于rmdir(), 如果子目

  • Java创建删除文件和目录的方法(推荐)

    创建和删除文件/目录常用的File类的方法 1.boolean exists():判断文件或目录是否存在 2.boolean createNewFile():创建新文件 3.boolean delete():删除文件 4.boolean mkdirs():递归创建多级目录 5.File getParentFile():获取上级目录 1.创建/删除文件 try { //在D盘demo目录新建文件:test.txt File file = new File("D:\\demo\\test.txt&q

  • Python编程实现删除VC临时文件及Debug目录的方法

    本文实例讲述了Python编程实现删除VC临时文件及Debug目录的方法.分享给大家供大家参考,具体如下: # *_* coding=gb2312 *-* import os import os.path import shutil invalidFileExtList =[".ncb",".user"] invalidDirectory=["Debug"] def InternalDeleteInvalidFile(str): bFlag=Fa

  • VC判断一个文件为目录的方法

    本文实例讲述了VC判断一个文件为目录的方法,分享给大家供大家参考.具体实现方法如下: 这是一个自定义函数,用于判断一个文件是否为目录: 复制代码 代码如下: /**  * check whether a file is a directory  @return true if is a directory, else false(if file not exists, false)  */ __declspec(dllexport) bool IsDirectory(const char* fi

  • php中通过DirectoryIterator删除整个目录的方法

    本文实例讲述了php中通过DirectoryIterator删除整个目录的方法.分享给大家供大家参考.具体实现方法如下: <?php function cleanup_directory($dir) { foreach (new DirectoryIterator($dir) as $file) { if ($file->isDir()) { if (! $file->isDot()) { cleanup_directory($file->getPathname()); } } e

随机推荐