Как сделать так, чтобы rmdir () не оставлял папку «недоступный»? - PullRequest
0 голосов
/ 26 апреля 2019

Я использую rmdir () в PHP на Windows для рекурсивного удаления структуры папок.Он удаляет все содержимое папки нормально, но оставляет базовую папку в «недоступном» состоянии.Мне все еще нужно удалить эту папку вручную, хотя система говорит, что она не может быть найдена.Каким-то образом сам процесс «удаления» напоминает ОС, что она должна фактически удалить его.

Вот мой код с комментариями к источникам:

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, а также Папка Iterator Thing .Они также не работали.

И вот ошибка, когда я дважды щелкаю по папке с призраками:

Как можно решить эту проблему?Это мой код или ОС, которая портит?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...