刪除目錄及其內容
嘗試使用rmdir() 刪除目錄時,由於目錄中存在文件而遇到錯誤,這是一種錯誤常見問題。幸運的是,有幾種方法可以規避此限制:
方法一:遞歸刪除
在刪除目標資料夾之前,遞歸刪除其所有檔案和子檔案夾。這是一個範例實作:
function deleteDir(string $dirPath): void { if (!is_dir($dirPath)) { throw new InvalidArgumentException("'$dirPath' must be a directory"); } $dirPath .= '/'; $files = glob($dirPath . '*', GLOB_MARK); foreach ($files as $file) { if (is_dir($file)) { deleteDir($file); } else { unlink($file); } } rmdir($dirPath); }
方法2: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中文網其他相關文章!