如何使rmdir()不会留下“无法访问”的文件夹?

时间:2019-04-26 19:48:14

标签: php windows operating-system

我在Windows上的PHP中使用rmdir()递归删除文件夹结构。它将删除文件夹中的所有内容,但是将基本文件夹置于“不可访问”状态。即使系统提示找不到该文件夹​​,我仍然必须手动删除该文件夹。某种程度上,“删除”操作使操作系统提醒它实际上需要将其删除。

这是我的代码,其中注释了源代码

function rrmdir($dir)
{
    // Taken from:
    // https://stackoverflow.com/a/3338133/6674014
    if(is_dir($dir))
    {
        $objects = scandir($dir);
        foreach($objects as $object)
        {
            if($object != "." && $object != "..")
            {
                if(is_dir($dir."/".$object))
                    $this->rrmdir($dir."/".$object);
                else
                {
                    // Added modification from comment attached to:
                    // https://stackoverflow.com/a/12148318/6674014
                    $objPath = $dir.'/'.$object;
                    chmod($objPath, 999);
                    unlink($objPath);
                }
            }
        }

        rmdir($dir);
    }
}

我还使用了$ handle方法以及文件夹迭代器。这些也没有用。

这是我双击ghost文件夹时的错误:

如何解决此问题?是我的代码还是操作系统搞砸了?

0 个答案:

没有答案