php
PHP - rmdir 함수
bool rmdir ( string $dirname [, resource $context ] )
(PHP 4, PHP 5)
해당하는 디렉토리를 삭제해야할 경우 rmdir 함수를 사용합니다.
삭제에 성공하면 true를. 실패하면 PHP 오류코드를 표시합니다. 그러므로 rmdir 함수 앞에 @를 삽입하여 오류코드가 표시되지 않도록 해야 하며, 하위폴더나 파일이 존재하면 삭제에 실패하게 됩니다.
이하 파일 권한(퍼미션)이 0707이나 0777이 아니어도 삭제 실패의 원인이 됩니다. 단, 윈도우 환경의 경우 권한설정이 없으므로 생략이 가능합니다.
디렉토리 삭제 실패 이유는 권한문제뿐 아니라 디렉토리가 실제로 존재하지 않거나 디렉토리 안에 파일이나 디렉토리가 존재한다면 삭제할 수 없습니다. 그러므로 재귀호출을 이용하여 하위 디렉토리를 일괄 삭제한 다음 해당 디렉토리를 삭제해야 합니다.
(PHP 4, PHP 5)
해당하는 디렉토리를 삭제해야할 경우 rmdir 함수를 사용합니다.
삭제에 성공하면 true를. 실패하면 PHP 오류코드를 표시합니다. 그러므로 rmdir 함수 앞에 @를 삽입하여 오류코드가 표시되지 않도록 해야 하며, 하위폴더나 파일이 존재하면 삭제에 실패하게 됩니다.
이하 파일 권한(퍼미션)이 0707이나 0777이 아니어도 삭제 실패의 원인이 됩니다. 단, 윈도우 환경의 경우 권한설정이 없으므로 생략이 가능합니다.
<?php
$dir = 'mydir'; // 삭제 대상 폴더
if(rmdir($dir)) {
echo "삭제에 성공하였습니다.";
} else {
echo "삭제에 실패하였습니다.";
}
?>
디렉토리 삭제 실패 이유는 권한문제뿐 아니라 디렉토리가 실제로 존재하지 않거나 디렉토리 안에 파일이나 디렉토리가 존재한다면 삭제할 수 없습니다. 그러므로 재귀호출을 이용하여 하위 디렉토리를 일괄 삭제한 다음 해당 디렉토리를 삭제해야 합니다.
<?php
function rmdir_ok($dir) {
$dirs = dir($dir);
while(false !== ($entry = $dirs->read())) {
if(($entry != '.') && ($entry != '..')) {
if(is_dir($dir.'/'.$entry)) {
rmdir_ok($dir.'/'.$entry);
} else {
@unlink($dir.'/'.$entry);
}
}
}
$dirs->close();
@rmdir($dir);
}
rmdir_ok('삭제할 경로');
?>
0 댓글