当前位置: 首页 > 面试题库 >

如何使用PHP删除包含内容的文件夹

钱黎明
2023-03-14
问题内容

我需要使用PHP删除包含内容的文件夹。rmdir()unlink()删除空文件夹,但无法删除包含内容的文件夹。


问题答案:

此功能将允许您删除任何文件夹(只要可写)及其文件和子目录。

function Delete($path)
{
    if (is_dir($path) === true)
    {
        $files = array_diff(scandir($path), array('.', '..'));

        foreach ($files as $file)
        {
            Delete(realpath($path) . '/' . $file);
        }

        return rmdir($path);
    }

    else if (is_file($path) === true)
    {
        return unlink($path);
    }

    return false;
}

或不递归使用RecursiveDirectoryIterator

function Delete($path)
{
    if (is_dir($path) === true)
    {
        $files = new RecursiveIteratorIterator(new RecursiveDirectoryIterator($path), RecursiveIteratorIterator::CHILD_FIRST);

        foreach ($files as $file)
        {
            if (in_array($file->getBasename(), array('.', '..')) !== true)
            {
                if ($file->isDir() === true)
                {
                    rmdir($file->getPathName());
                }

                else if (($file->isFile() === true) || ($file->isLink() === true))
                {
                    unlink($file->getPathname());
                }
            }
        }

        return rmdir($path);
    }

    else if ((is_file($path) === true) || (is_link($path) === true))
    {
        return unlink($path);
    }

    return false;
}


 类似资料:
  • 问题内容: 我想使用Java创建和删除目录,但是它不起作用。 问题答案: Java无法删除其中包含数据的文件夹。您必须先删除所有文件,然后再删除文件夹。 使用类似: 然后,您应该可以使用 Untested 删除文件夹!

  • 我想用Java创建和删除一个目录,但是它不起作用。

  • 问题内容: 如何在Python中删除本地文件夹的内容? 当前项目适用于Windows,但我也希望看到* nix。 问题答案:

  • 问题内容: 我可以轻松删除子引用中的文件,但是如何从Firebase Storage中删除整个文件夹? 错误文件不存在。有任何想法吗? 问题答案: 长话短说,我们尚未实现递归(或文件夹)删除。 目前,我们建议将文件列表存储在另一个源(例如,实时数据库)中,并根据需要删除文件。您也可以在Firebase控制台(console.firebase.google.com)中执行这种删除。 将来,我们可能会

  • 我想镜像两个文件夹,但排除某些文件类型(例如js文件)。我可以用 /XF选项来做到这一点。 我遇到的问题是,如果目标文件夹中有一个带有js文件的Foo文件夹,但源文件夹中没有Foo文件夹,那么下面的robocopy命令将删除目标端的Foo文件夹以及其中的js文件。 机器人复制。exe d:\Source d:\Destination/E/PURGE/XF*。js/COPYALL/FFT 我想要的是

  • 问题内容: 如何删除Java中文件的内容? 问题答案: 这个怎么样: