{{page>en:templates:fapiint}}
====== DosMkDir ======
This call creates a subdirectory.
===== Syntax =====
DosMkDir (DirName, Reserved)
===== Parameters =====
* DirName ([[PSZ]]) - input : Address of the ASCIIZ directory path name, which may or may not include a drive specification. If no drive is specified, the current drive is assumed.
[[DosQSysInfo]] is called by an application during initialization to determine the maximum path length allowed by OS/2.
*Reserved ([[ULONG]]) - input : Reserved and must be set to zero.
===== Return Code =====
rc ([[USHORT]]) - return
Return code descriptions are:
* 0 NO_ERROR
* 3 ERROR_PATH_NOT_FOUND
* 5 ERROR_ACCESS_DENIED
* 26 ERROR_NOT_DOS_DISK
* 87 ERROR_INVALID_PARAMETER
* 108 ERROR_DRIVE_LOCKED
* 206 ERROR_FILENAME_EXCED_RANGE
===== Remarks =====
If any subdirectory names in the path do not exist, the subdirectory is not created. Upon return, a subdirectory is created at the end of the specified path.
[[DosQSysInfo]] must be used by an application to determine the maximum path length supported by OS/2. The returned value should be used to dynamically allocate buffers that are to be used to store paths.
If a program running with the NEWFILES bit set tries to create a directory with blanks immediately preceding the dot on a FAT drive, the system rejects the name. For example, if c: is a FAT drive, the name "file .txt" is rejected and the name "file.txt" is accepted.
===== Example Code =====
==== C Binding ====
#define INCL_DOSFILEMGR
USHORT rc = DosMkDir(DirName, Reserved);
PSZ DirName; /* New directory string name */
ULONG 0; /* Reserved (must be zero) */
USHORT rc; /* return code */
==== MASM Binding ====
EXTRN DosMkDir:FAR
INCL_DOSFILEMGR EQU 1
PUSH@ ASCIIZ DirName ;New directory name string
PUSH DWORD 0 ;Reserved (must be zero)
CALL DosMkDir
Returns WORD
===== Note =====
Text based on http://www.edm2.com/index.php/DosMkDir
{{page>en:templates:fapi}}