使用php删除文件夹时无法删除文件夹中的最后一个文件
我正在从其他网站调用php函数,这些网站在后台删除了我服务器上的一个文件夹 这是我用来删除文件夹的函数使用php删除文件夹时无法删除文件夹中的最后一个文件,php,Php,我正在从其他网站调用php函数,这些网站在后台删除了我服务器上的一个文件夹 这是我用来删除文件夹的函数 public static function remove($dir) { if (is_dir($dir)) { $diropen = opendir($dir); while($d = readdir($diropen)) { if ($d!= '
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是调试取消链接错误的方法,因为它在我这端不起作用。