Memadam Direktori dengan Kandungannya
Apabila cuba mengalih keluar direktori menggunakan rmdir(), menghadapi ralat disebabkan fail sedia ada di dalamnya adalah isu biasa. Nasib baik, terdapat beberapa kaedah untuk memintas pengehadan ini:
Kaedah 1: Pemadaman Rekursif
Sebelum memadamkan folder sasaran, alih keluar semua fail dan subfoldernya secara rekursif. Berikut ialah contoh pelaksanaan:
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); }
Kaedah 2: RecursiveIterator (PHP 5.2 )
Memanfaatkan RecursiveIterator, anda boleh memudahkan proses pemadaman rekursif:
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); }
Dengan menggunakan kaedah ini, anda boleh dengan berkesan padam direktori bersama-sama dengan fail terbenamnya.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Memadam Direktori dan Kandungannya secara Rekursif dalam PHP?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!