php目录操作实例代码


下面是一个PHP中操作目录的实例代码。这段代码展示了如何创建一个新目录、列出目录中的文件和文件夹、以及删除一个目录(如果它是空的)。


<?php

// 设置要操作的目录路径
$dirPath = 'exampleDir';

// 创建一个新目录
if (!file_exists($dirPath)) {
    mkdir($dirPath, 0777, true);
    echo "目录 '{$dirPath}' 创建成功。\n";
} else {
    echo "目录 '{$dirPath}' 已存在。\n";
}

// 列出目录中的所有文件和文件夹
echo "目录 '{$dirPath}' 中的内容:\n";
if ($handle = opendir($dirPath)) {
    while (false !== ($entry = readdir($handle))) {
        if ($entry != "." && $entry != "..") {
            echo "$entry\n";
        }
    }
    closedir($handle);
}

// 假设我们要删除这个目录(但首先确保它是空的)
// 注意:这里只是演示,实际使用时需要先清空目录或检查目录是否为空
// 删除目录
// if (empty($dirPath)) { // 注意:这里的 empty() 用于字符串或数组,不适用于目录
//     rmdir($dirPath);
//     echo "目录 '{$dirPath}' 已删除。\n";
// } else {
//     echo "目录 '{$dirPath}' 不为空,无法直接删除。\n";
// }

// 正确的做法是先检查目录是否为空,再删除(这里不实现清空逻辑)
if (count(scandir($dirPath)) <= 2) { // 2 表示 '.' 和 '..'
    rmdir($dirPath);
    echo "目录 '{$dirPath}' 已删除(假设它是空的)。\n";
} else {
    echo "目录 '{$dirPath}' 不为空,无法直接删除。\n";
}

?>

请注意,删除目录时我使用了`scandir()`函数来检查目录是否为空(除了`.`和`..`之外没有其他条目)。然而,在实际应用中,如果目录不为空,您可能需要编写额外的逻辑来清空目录(删除其中的所有文件和子目录)或者提示用户手动清空。

此外,创建目录时我使用了`mkdir()`函数,并设置了权限`0777`(这是一个宽松的权限设置,通常不建议在生产环境中使用,因为它允许任何用户读写执行)。在实际应用中,您应该根据实际需求设置适当的权限。