중첩 파일이 있는 디렉토리 삭제
Q: rmdir()을 사용하여 디렉토리를 삭제하려고 하는데 디렉토리가 삭제되면 실패합니다. 파일이 포함되어 있습니다. 디렉토리와 그 내용을 모두 삭제하려면 어떻게 해야 합니까?
A: 디렉토리와 모든 파일을 삭제하는 두 가지 방법은 다음과 같습니다.
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); }
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 중국어 웹사이트의 기타 관련 기사를 참조하세요!