使用php删除文件夹时无法删除文件夹中的最后一个文件

时间:2017-07-03 17:00:41

标签: php

我从其他网站调用我的php函数,该网站在后台删除我服务器上的文件夹。

这是我用来删除文件夹的功能。

public static function remove($dir)
        {
            if (is_dir($dir)) {
                $diropen = opendir($dir);
                while($d = readdir($diropen)) {
                    if ($d!= '.' && $d != '..') {
                        self::remove($dir . "/$d");
                    }
                }
                @rmdir($dir);
            } elseif (is_file($dir)) {
                @unlink($dir);
            }
        }

如果我在文件夹中有三个文件,那么它只删除两个文件,无法删除最后一个文件或在最后一个文件上取消链接失败。

如果我有两个文件,那么它只删除一个文件。

我已使用is_writable检查了可写权限,但对于所有文件都是如此。

请有人帮帮我。或者如何在后台调用此函数来调试此行为。

2 个答案:

答案 0 :(得分:0)

我的目录在其他一些功能中打开了,所以我closedir我的文件夹然后上面的功能正常工作。

答案 1 :(得分:0)

BooleanProperty

使用closedir,你会没事的。