DosDeleteDir

Removes a subdirectory from the specified disk.

Syntax
DosDeleteDir(pszDir)

Parameters

 * pszDir (PSZ) - input: Address of the fully qualified path name of the subdirectory to be removed.

Return Code

 * ulrc (APIRET) - returns:DosDeleteDir returns one of the following values:
 * 0 NO_ERROR
 * 2 ERROR_FILE_NOT_FOUND
 * 3 ERROR_PATH_NOT_FOUND
 * 5 ERROR_ACCESS_DENIED
 * 16 ERROR_CURRENT_DIRECTORY
 * 26 ERROR_NOT_DOS_DISK
 * 87 ERROR_INVALID_PARAMETER
 * 108 ERROR_DRIVE_LOCKED
 * 206 ERROR_FILENAME_EXCED_RANGE

Remarks
The subdirectory must be empty; that is, it cannot have hidden files or directory entries other than the "." and ".." entries. To delete files, use DosDelete or DosForceDelete.

The root directory and current directory cannot be removed.

Example Code
This example creates, accesses, and finally deletes a new directory, named "TEMPPROG", from the root directory. Some return codes are not checked for brevity. 
 * 1) define INCL_DOSFILEMGR  /* File Manager values */
 * 2) define INCL_DOSERRORS   /* DOS Error values    */
 * 3) include 
 * 4) include 
 * 5) include 

int main(VOID) { UCHAR  achOrigDirName[256] = "";            /* Original directory name  */ UCHAR  achNewDirName[256]  = "\\TEMPPROG";  /* New directory to create  */ UCHAR  achDirName[256]     = "";          /* Directory name for queries */ ULONG  cbDirPathLen    = 0;               /* Length of directory path   */ PEAOP2 pEABuf       = NULL;   /* Extended Attribute buffer pointer      */ ULONG  ulDriveNum   = 0;      /* Drive number: current=0, A=1, B=2, ... */  APIRET  rc           = NO_ERROR;      /* Return code                     */

cbDirPathLen = (ULONG) sizeof(achOrigDirName); rc = DosQueryCurrentDir(ulDriveNum, achOrigDirName, &cbDirPathLen);

if (rc != NO_ERROR) { printf("DosQueryCurrentDir error: return code = %u\n", rc); return 1; } else printf ("Original dir. = \\%s\n", achOrigDirName);

pEABuf = NULL; /* Indicate no EAs are to be defined for the directory  */ rc = DosCreateDir(achNewDirName, pEABuf);  /* Create the new directory */

if (rc != NO_ERROR) { printf("DosCreateDir error: return code = %u\n", rc); return 1; }

rc = DosSetCurrentDir (achNewDirName);  /* Change to new directory     */

ulDriveNum = 0; cbDirPathLen = (ULONG) sizeof(achDirName); rc = DosQueryCurrentDir(ulDriveNum, achDirName, &cbDirPathLen);

if (rc != NO_ERROR) { printf("DosQueryCurrentDir error: return code = %u\n", rc); return 1; } else printf ("Current dir. = \\%s\n", achDirName);

strcpy(achDirName,"\\");

rc = DosSetCurrentDir (achDirName);    /* Change to root directory     */ rc = DosDeleteDir (achNewDirName);     /* Delete the new directory     */

return NO_ERROR; } 

Related Functions

 * DosDelete
 * DosForceDelete