首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 網頁程式設計 >> PHP 程式設計 >> PHP 綜合知識

PHP 使用 rmdir() 刪除目錄

     編輯:PHP 綜合知識

rmdir() 可刪除空目錄。若目錄非空會失敗並回傳 false。搭配 is_dir() 先判斷目錄是否存在,避免警告。

基本語法

rmdir(string $directory, resource $context = null): bool

安全刪除範例

<?php
$dir = 'exampledir';
if (!is_dir($dir)) {
    mkdir($dir); // 不存在則建立(示範用)
}
if (rmdir($dir)) {
    echo "目錄已刪除";
} else {
    echo "刪除失敗(目錄可能非空或權限不足)";
}
?>

刪除非空目錄:遞迴函數

function deleteDirectory($dir) {
    if (!is_dir($dir)) return false;
    $items = scandir($dir);
    foreach ($items as $item) {
        if ($item === '.' || $item === '..') continue;
        $path = $dir . DIRECTORY_SEPARATOR . $item;
        if (is_dir($path)) {
            deleteDirectory($path);
        } else {
            unlink($path);
        }
    }
    return rmdir($dir);
}

現代替代方案(PHP 8.0+)

// 使用 FilesystemIterator + RecursiveDirectoryIterator
function deleteDirectoryModern($dir) {
    $iterator = new RecursiveIteratorIterator(
        new RecursiveDirectoryIterator($dir, FilesystemIterator::SKIP_DOTS),
        RecursiveIteratorIterator::CHILD_FIRST
    );
    foreach ($iterator as $item) {
        $item->isDir() ? rmdir($item->getPathname()) : unlink($item->getPathname());
    }
    rmdir($dir);
}

權限提醒

  • 執行 PHP 的使用者需具備目錄的寫入與執行權限
  • Windows 下若檔案被佔用(如開啟在編輯器)會刪除失敗

依專案 PHP 版本選擇適當寫法,確保目錄清理可靠。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved