Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/delphi/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用php删除文件夹时无法删除文件夹中的最后一个文件_Php - Fatal编程技术网

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

使用php删除文件夹时无法删除文件夹中的最后一个文件,php,Php,我正在从其他网站调用php函数,这些网站在后台删除了我服务器上的一个文件夹 这是我用来删除文件夹的函数 public static function remove($dir) { if (is_dir($dir)) { $diropen = opendir($dir); while($d = readdir($diropen)) { if ($d!= '

我正在从其他网站调用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_writeable
检查了可写权限,这对所有文件都是正确的


谁能帮帮我吗。或者在后台调用此函数时如何调试此行为。

我的目录在其他函数中打开,因此我
closedir
我的文件夹,然后上面的函数工作正常


<?php
function delete_directory($target) {
         if (is_dir($target))
           $dir_handle = opendir($target);
     if (!$dir_handle)
          return false;
     while($file = readdir($dir_handle)) {
           if ($file != "." && $file != "..") {
                if (!is_dir($dirname."/".$file))
                     unlink($dirname."/".$file);
                else
                     delete_directory($target.'/'.$file);
           }
     }
     closedir($dir_handle);
     rmdir($target);
     return true;
}

?>

使用closedir,您会没事的。

您的代码对我有用。请阅读手册。“/*这是在目录上循环的错误方法。*/”@ChrysUgwu是调试取消链接错误的方法,因为它在我这端不起作用。