RemoveDirectoryA 함수(fileapi.h)

기존 빈 디렉터리를 삭제합니다.

이 작업을 트랜잭션 작업으로 수행하려면 RemoveDirectoryTransacted 함수를 사용합니다.

구문

BOOL RemoveDirectoryA(
  [in] LPCSTR lpPathName
);

매개 변수

[in] lpPathName

제거할 디렉터리의 경로입니다. 이 경로는 빈 디렉터리를 지정해야 하며 호출 프로세스에는 디렉터리에 대한 삭제 액세스 권한이 있어야 합니다.

기본적으로 이름은 MAX_PATH 문자로 제한됩니다. 이 제한을 32,767자로 확장하려면 경로에 "\\?\"를 앞에 추가합니다. 자세한 내용은 파일 이름 지정, 경로 및 네임스페이스를 참조하세요.

Windows 10 버전 1607부터 "\\?\"를 앞에 추가하지 않고 MAX_PATH 제한을 제거하도록 옵트인할 수 있습니다. 자세한 내용은 파일, 경로 및 네임스페이스의 "최대 경로 길이 제한" 섹션을 참조하세요.

반환 값

함수가 성공하면 반환 값이 0이 아닙니다.

함수가 실패하면 반환 값은 0입니다. 확장 오류 정보를 가져오려면 GetLastError를 호출합니다.

설명

RemoveDirectory 함수는 닫을 때 삭제할 디렉터리를 표시합니다. 따라서 디렉터리에 대한 마지막 핸들을 닫을 때까지 디렉터리가 제거되지 않습니다.

디렉터리의 파일을 재귀적으로 삭제하려면 SHFileOperation 함수를 사용합니다.

RemoveDirectory를 사용하여 디렉터리 접합을 제거할 수 있습니다. 대상 디렉터리와 해당 콘텐츠는 정식 경로를 통해 계속 액세스할 수 있으므로 대상 디렉터리 자체는 대상을 대상으로 하는 접합을 제거하여 영향을 받지 않습니다. 이러한 이유로 lpPathName 이 디렉터리 접합을 참조하는 경우 RemoveDirectory 는 대상 디렉터리가 비어 있는지 여부에 관계없이 지정된 링크를 제거합니다. 접합에 대한 자세한 내용은 하드 링크 및 접합을 참조하세요.

POSIX 삭제를 사용하면 핸들이 열려 있는 동안 디렉터리가 삭제됩니다. 디렉터리를 열기 위해 CreateDirectory에 대한 후속 호출은 ERROR_FILE_NOT_FOUND 실패합니다.

Windows 8 및 Windows Server 2012 이 함수는 다음 기술에서 지원됩니다.

기술 지원됨
SMB(서버 메시지 블록) 3.0 프로토콜 Yes
SMB 3.0 TFO(투명 장애 조치(failover)) Yes
SO(스케일 아웃 파일 공유)를 사용하는 SMB 3.0 Yes
CsvFS(클러스터 공유 볼륨 파일 시스템) Yes
ReFS(Resilient File System) Yes

참고

fileapi.h 헤더는 REMOVEDirectory를 유니코드 전처리기 상수의 정의에 따라 이 함수의 ANSI 또는 유니코드 버전을 자동으로 선택하는 별칭으로 정의합니다. 인코딩 중립 별칭을 인코딩 중립이 아닌 코드와 혼합하면 컴파일 또는 런타임 오류가 발생하는 불일치가 발생할 수 있습니다. 자세한 내용은 함수 프로토타입에 대한 규칙을 참조하세요.

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows XP [데스크톱 앱 | UWP 앱]
지원되는 최소 서버 Windows Server 2003 [데스크톱 앱 | UWP 앱]
대상 플랫폼 Windows
헤더 fileapi.h(Windows.h 포함)
라이브러리 Kernel32.lib
DLL Kernel32.dll

참고 항목

CreateDirectory

디렉터리 만들기 및 삭제

디렉터리 관리 함수

RemoveDirectoryTransacted