📜  php 仅在为空时删除目录 - PHP (1)

📅  最后修改于: 2023-12-03 14:45:21.789000             🧑  作者: Mango

PHP 仅在为空时删除目录 - PHP

在PHP中,如果要删除一个目录,但仅在它为空时才删除,你可以使用rmdir()函数。

以下是一个简单的函数,它允许你删除一个目录,但仅在目录为空时才执行删除操作:

/**
 * 删除一个目录,但仅在它为空时才删除
 *
 * @param string $dir 目录路径
 * @return bool 返回true表示删除成功,返回false表示删除失败或目录不为空
 */
function deleteEmptyDirectory($dir) {
    // 验证目录是否存在并且是一个目录
    if (!is_dir($dir)) {
        return false;
    }

    // 打开目录
    $handle = opendir($dir);

    // 读取目录中的条目
    while (($entry = readdir($handle)) !== false) {
        // 忽略当前目录和上级目录的条目
        if ($entry != "." && $entry != "..") {
            // 目录非空,无法删除
            closedir($handle);
            return false;
        }
    }

    // 关闭目录句柄
    closedir($handle);

    // 删除空目录
    return rmdir($dir);
}

你可以像这样使用这个函数:

// 要删除的目录路径
$directory = '/path/to/directory';

// 删除目录,但仅在它为空时才执行删除操作
if (deleteEmptyDirectory($directory)) {
    echo "目录删除成功!";
} else {
    echo "目录删除失败或目录不为空!";
}

请注意,此函数只会删除空目录。如果目录中有任何文件或子目录,将无法删除目录。

记得提前备份重要的目录和文件,以免意外删除!