0

这是我用于递归删除文件夹和文件的功能

function rmdir_recursively($dir) {
    if (!is_dir($dir) || is_link($dir)) return unlink($dir); 
        foreach (scandir($dir) as $file) { 
            if ($file == '.' || $file == '..') continue; 
            if (!rmdir_recursively($dir . DIRECTORY_SEPARATOR . $file)) { 
                chmod($dir . DIRECTORY_SEPARATOR . $file, 0777); 
                if (!rmdir_recursively($dir . DIRECTORY_SEPARATOR . $file)) return false; 
            }; 
        } 
        return rmdir($dir); 
}

问题是,当我在根目录中发送一些文件夹时,它会删除该文件夹。但是当我像这样发送根文件夹本身时

rmdir_recursively("./");

它返回一堆错误,如下所示

PHP Warning:  unlink(.//wp/wp-admin/network) [<a href='function.unlink'>function.unlink</a>]: No such file or directory in /home/vefa/public_html/deploy.php on line 52
[07-Oct-2012 02:16:09] PHP Warning:  unlink(.//wp/wp-admin/user) [<a href='function.unlink'>function.unlink</a>]: No such file or directory in /home/vefa/public_html/deploy.php on line 52
[07-Oct-2012 02:16:09] PHP Warning:  unlink(.//wp/wp-content) [<a href='function.unlink'>function.unlink</a>]: No such file or directory in /home/vefa/public_html/deploy.php on line 52
[07-Oct-2012 02:16:09] PHP Warning:  unlink(.//wp/wp-content/plugins) [<a href='function.unlink'>function.unlink</a>]: No such file or directory in /home/vefa/public_html/deploy.php on line 52
[07-Oct-2012 02:16:09] PHP Warning:  unlink(.//wp/wp-content/plugins/akismet) [<a href='function.unlink'>function.unlink</a>]: No such file or directory in /home/vefa/public_html/deploy.php on line 52

我错过了什么?

4

1 回答 1

1

你说你送rmdir_recursively("./");

但是看看代码,你稍后会调用rmdir_recursively($dir . DIRECTORY_SEPARATOR . $file).

这意味着您将尝试消除“.//”中的文件。

这就是为什么您的错误消息包含unlink(.//wp/wp-admin/user)

改为使用rmdir_recursively(".");

于 2012-10-07T08:06:00.793 回答