Computer >> 컴퓨터 >  >> 프로그래밍 >> PHP

PHP rmdir() 함수 완벽 정리 – 빈 디렉터리(폴더) 삭제 방법과 예제

PHP rmdir() 함수란?

PHP의 rmdir() 함수는 비어 있는 디렉터리(directory, 폴더)를 삭제할 때 사용하는 내장 함수입니다. 이 함수가 정상적으로 동작하려면 두 가지 조건이 충족되어야 합니다.


  • 삭제하려는 디렉터리가 반드시 비어 있어야 합니다.

  • 해당 디렉터리를 삭제할 수 있는 적절한 파일 시스템 권한이 있어야 합니다.


디렉터리 안에 파일이나 하위 폴더가 하나라도 남아 있다면 삭제에 실패합니다. 따라서 실무에서는 먼저 unlink() 함수로 내부 파일을 정리한 후 rmdir()을 호출하는 것이 일반적입니다.

구문(Syntax)

rmdir(dir, context)

매개변수(Parameters)

  • dir − 삭제할 디렉터리의 경로를 지정합니다. (필수)

  • context − 스트림의 동작 방식을 제어하기 위한 컨텍스트 리소스를 지정합니다. (선택)

반환값(Return)

rmdir() 함수는 디렉터리 삭제에 성공하면 TRUE, 실패하면 FALSE를 반환합니다. 실패 시 PHP 경고(warning) 메시지가 함께 출력되므로, 필요하다면 함수 앞에 @를 붙여 경고를 억제하고 반환값으로 성공 여부를 판단할 수 있습니다.

예제 1: 기본적인 디렉터리 삭제

다음은 'amit'이라는 이름의 빈 디렉터리를 삭제하는 기본 예제입니다.

<?php
    $file_path = "amit";
    if(!rmdir($file_path)) {
        echo("Could not remove $file_path");
    }
?>

출력 결과

TRUE

삭제에 성공했기 때문에 TRUE가 반환되었으며, if문 내부의 에러 메시지는 출력되지 않습니다.

예제 2: 디렉터리 생성 후 삭제

mkdir() 함수로 새 디렉터리를 생성한 직후, rmdir() 함수로 해당 디렉터리를 삭제하는 예제입니다.

<?php
    mkdir("documents");
    $dir = "documents";
    // rmdir() 함수로 디렉터리 삭제
    rmdir($dir);
?>

출력 결과

TRUE

'documents' 디렉터리가 생성된 후 곧바로 삭제되며, 아무 오류 없이 실행이 종료됩니다.

정리

rmdir() 함수는 간단하지만 빈 디렉터리만 삭제 가능하다는 점을 기억해야 합니다. 파일이 포함된 디렉터리를 통째로 지우고 싶다면 재귀적으로 파일을 삭제한 뒤 rmdir()을 호출하거나, RecursiveDirectoryIterator를 활용하는 방법을 고려해 보세요.