We recommend using Visual Studio 2017
This documentation is archived and is not being maintained.

_rmdir, _wrmdir

Deletes a directory.

int _rmdir( 
   const char *dirname  
int _wrmdir( 
   const wchar_t *dirname  


Path of the directory to be removed.

Each of these functions returns 0 if the directory is successfully deleted. A return value of –1 indicates an error and errno is set to one of the following values:


Given path is not a directory, the directory is not empty, or the directory is either the current working directory or the root directory.


Path is invalid.


A program has an open handle to the directory.

For more information about these and other return codes, see _doserrno, errno, _sys_errlist, and _sys_nerr.

The _rmdir function deletes the directory specified by dirname. The directory must be empty, and it must not be the current working directory or the root directory.

_wrmdir is a wide-character version of _rmdir; the dirname argument to _wrmdir is a wide-character string. _wrmdir and _rmdir behave identically otherwise.

Generic-Text Routine Mappings

Tchar.h routine

_UNICODE and _MBCS not defined

_MBCS defined

_UNICODE defined






Required header




<direct.h> or <wchar.h>

For more compatibility information, see Compatibility in the Introduction.


All versions of the C run-time libraries.

See the example for _mkdir.