다음을 통해 공유


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 프로토콜
SMB 3.0 TFO(투명한 장애 조치(failover)
SO(스케일 아웃 파일 공유)가 있는 SMB 3.0
CsvFS(클러스터 공유 볼륨 파일 시스템)
ReFS(복원 파일 시스템)

메모

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

요구 사항

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

참고 항목

CreateDirectory

디렉터리 만들기 및 삭제

디렉터리 관리 함수

RemoveDirectoryTransacted