디렉터리 내용과 함께 삭제
rmdir()을 사용하여 디렉터리를 제거하려고 할 때, 그 안에 있는 기존 파일로 인해 오류가 발생합니다. 일반적인 문제. 다행히도 이 제한을 피할 수 있는 여러 가지 방법이 있습니다.
방법 1: 재귀 삭제
대상 폴더를 삭제하기 전에 모든 파일과 하위 폴더를 재귀적으로 제거하세요. 다음은 샘플 구현입니다.
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 중국어 웹사이트의 기타 관련 기사를 참조하세요!