首頁 > 後端開發 > php教程 > 如何在 PHP 中刪除目錄及其內容?

如何在 PHP 中刪除目錄及其內容?

Linda Hamilton
發布: 2024-12-25 22:37:16
原創
1016 人瀏覽過

How to Delete a Directory and its Contents in PHP?

刪除包含巢狀檔案的目錄

問:我嘗試使用rmdir() 刪除目錄,但如果目錄失敗,則會失敗包含文件。如何刪除目錄及其所有內容?

答:刪除目錄及其所有檔案有兩種方法:

  1. 遞迴刪除 :遞歸遍歷目錄並刪除每個檔案和子目錄,然後再刪除父目錄
function deleteDir(string $dirPath): void {
    if (! is_dir($dirPath)) {
        throw new InvalidArgumentException("$dirPath must be a directory");
    }
    if (substr($dirPath, strlen($dirPath) - 1, 1) != '/') {
        $dirPath .= '/';
    }
    $files = glob($dirPath . '*', GLOB_MARK);
    foreach ($files as $file) {
        if (is_dir($file)) {
            deleteDir($file);
        } else {
            unlink($file);
        }
    }
    rmdir($dirPath);
}
登入後複製
  1. RecursiveIterator 迭代:對於PHP 5.2 及更高版本,使用RecursiveIterator() 迭代目錄及其內容。
function removeDir(string $dir): void {
    $it = new RecursiveDirectoryIterator($dir, RecursiveDirectoryIterator::SKIP_DOTS);
    $files = new RecursiveIteratorIterator($it,
                 RecursiveIteratorIterator::CHILD_FIRST);
    foreach($files as $file) {
        if ($file->isDir()){
            rmdir($file->getPathname());
        } else {
            unlink($file->getPathname());
        }
    }
    rmdir($dir);
}
登入後複製

這兩種方法都會有效地刪除包含所有內容的目錄它的檔案和子目錄。

以上是如何在 PHP 中刪除目錄及其內容?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板