在PHP中仅删除空文件夹和子文件夹

巧克力

我有一个文件夹,里面装满了空文件夹和完整文件夹。

我想遍历所有它们,弄清楚它们是否为,如果是,则将其删除。我已经看到了一些适用的问题,但是我无法找出整体解决方案:

使用新的PHP5函数,必须有一些简单的确定方法来做到这一点?

有点像(充满错误的伪代码)

<?php
$dir = new DirectoryIterator('/userfiles/images/models/');
foreach ($dir as $fileinfo) {
    if (!$fileinfo->isDot()) {
         if(!(new \FilesystemIterator($fileinfo))->valid()) {
              rmdir($fileinfo);
         }
    }
}
?>
里齐尔123

这应该为您工作:

在这里,我只是使用glob()(PHP 4> = 4.3.0,PHP 5)从特定路径获取所有目录然后,我遍历每个目录并检查它是否为空。

如果为空,则用rmdir()其他方式将其删除,然后检查其中是否还有其他目录,并使用新目录调用该函数

<?php

    function removeEmptyDirs($path, $checkUpdated = false, $report = false) {
        $dirs = glob($path . "/*", GLOB_ONLYDIR);

        foreach($dirs as $dir) {
            $files = glob($dir . "/*");
            $innerDirs = glob($dir . "/*", GLOB_ONLYDIR);
            if(empty($files)) {
                if(!rmdir($dir))
                    echo "Err: " . $dir . "<br />";
               elseif($report)
                    echo $dir . " - removed!" . "<br />";
            } elseif(!empty($innerDirs)) {
                removeEmptyDirs($dir, $checkUpdated, $report);
                if($checkUpdated)
                    removeEmptyDirs($path, $checkUpdated, $report);
            }
        }

    }


?>

removeEmptyDirs

(PHP 4 >= 4.3.3, PHP 5)
removeEmptyDirs — Removes empty directory's

void removeEmptyDirs(字符串$ path [,bool $ checkUpdated = false [,bool $ report = false]])

描述

The removeEmptyDirs() function goes through a directory and removes every empty directory

参数

path
  The Path where it should remove empty directorys

checkUpdated
  If it is set to TRUE it goes through each directory again if one directory got removed

report
  If it is set to TRUE the function outputs which directory get's removed

返回值

None

举个例子:

如果这样$checkUpdatedTRUE结构被完全删除:

- dir
   | - file.txt
   | - dir
        | - dir

结果:

- dir
   | - file.txt

如果FALSE默认情况下,结果将是:

- dir
   | - file.txt
   | - dir  //See here this is still here

如果$reportTRUE你会得到这样的输出:

test/a - removed!
test/b - removed!
test/c - removed!

否则你没有输出

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

删除文件夹和子文件夹中的某些文件类型和空文件夹

来自分类Dev

删除子文件夹中的文件并删除空文件夹

来自分类Dev

如何删除文件夹及其子文件夹中的所有空文件?

来自分类Dev

Windows CMD或BATCH文件“标记”空文件夹(和仅包含空文件夹的文件夹)

来自分类Dev

查找和删除仅包含最新子文件夹的子文件夹

来自分类Dev

删除文件夹“ tmp”和“缓存”中的文件和子文件夹

来自分类Dev

如何递归地仅复制文件夹和子文件夹中的文件?

来自分类Dev

php RecursiveDirectoryIterator仅显示文件夹和子文件夹名称

来自分类Dev

删除文件夹和子文件夹中的所有隐藏文件

来自分类Dev

使用python删除文件夹和子文件夹中的pdf文件?

来自分类Dev

检查并删除文件夹和子文件夹中的特定文件

来自分类Dev

无法删除空文件夹

来自分类Dev

使用rmdir删除一个文件夹中的许多空文件夹

来自分类Dev

如何删除树状网格中的空文件夹

来自分类Dev

删除工作目录中的空文件夹

来自分类Dev

在cmd空文件夹删除中的目录替换

来自分类Dev

仅比较同一源文件夹中的文件与仅比较同一源文件夹和子文件夹中的文件

来自分类Dev

删除子文件夹和文件而不删除父文件夹和子文件夹?

来自分类Dev

PHP在文件夹和子文件夹中显示图像

来自分类Dev

PHP在文件夹和子文件夹中显示图像

来自分类Dev

工作中的空文件夹

来自分类Dev

在Win32中删除子文件夹本身之前,如何从文件夹和子文件夹中删除文件?

来自分类Dev

识别空文件夹

来自分类Dev

显示空文件夹

来自分类Dev

如何删除文件夹中的所有文件(包括子文件夹中的文件)而不删除文件夹本身或其任何子文件夹

来自分类Dev

如果path为空文件夹或仅包含子文件夹,则“ Dir(path)<> vbNullString”给出否定的结果

来自分类Dev

NSIS-如何递归地仅包括源文件夹和子文件夹中的所有文件?

来自分类Dev

如何仅使用文件名来同步文件夹和子文件夹?

来自分类Dev

文件夹/子文件夹的大小然后删除

Related 相关文章

  1. 1

    删除文件夹和子文件夹中的某些文件类型和空文件夹

  2. 2

    删除子文件夹中的文件并删除空文件夹

  3. 3

    如何删除文件夹及其子文件夹中的所有空文件?

  4. 4

    Windows CMD或BATCH文件“标记”空文件夹(和仅包含空文件夹的文件夹)

  5. 5

    查找和删除仅包含最新子文件夹的子文件夹

  6. 6

    删除文件夹“ tmp”和“缓存”中的文件和子文件夹

  7. 7

    如何递归地仅复制文件夹和子文件夹中的文件?

  8. 8

    php RecursiveDirectoryIterator仅显示文件夹和子文件夹名称

  9. 9

    删除文件夹和子文件夹中的所有隐藏文件

  10. 10

    使用python删除文件夹和子文件夹中的pdf文件?

  11. 11

    检查并删除文件夹和子文件夹中的特定文件

  12. 12

    无法删除空文件夹

  13. 13

    使用rmdir删除一个文件夹中的许多空文件夹

  14. 14

    如何删除树状网格中的空文件夹

  15. 15

    删除工作目录中的空文件夹

  16. 16

    在cmd空文件夹删除中的目录替换

  17. 17

    仅比较同一源文件夹中的文件与仅比较同一源文件夹和子文件夹中的文件

  18. 18

    删除子文件夹和文件而不删除父文件夹和子文件夹?

  19. 19

    PHP在文件夹和子文件夹中显示图像

  20. 20

    PHP在文件夹和子文件夹中显示图像

  21. 21

    工作中的空文件夹

  22. 22

    在Win32中删除子文件夹本身之前,如何从文件夹和子文件夹中删除文件?

  23. 23

    识别空文件夹

  24. 24

    显示空文件夹

  25. 25

    如何删除文件夹中的所有文件(包括子文件夹中的文件)而不删除文件夹本身或其任何子文件夹

  26. 26

    如果path为空文件夹或仅包含子文件夹,则“ Dir(path)<> vbNullString”给出否定的结果

  27. 27

    NSIS-如何递归地仅包括源文件夹和子文件夹中的所有文件?

  28. 28

    如何仅使用文件名来同步文件夹和子文件夹?

  29. 29

    文件夹/子文件夹的大小然后删除

热门标签

归档