The CreateDirectoryEx function creates a new directory with a specified path that retains the attributes of a specified template directory. If the underlying file system supports security on files and directories, the function applies a specified security descriptor to the new directory. The new directory retains the other attributes of the specified template directory. Note that CreateDirectoryEx has a template parameter, while CreateDirectory does not.
BOOL CreateDirectoryEx(
LPCTSTR lpTemplateDirectory, | // pointer to path string of template directory |
LPCTSTR lpNewDirectory, | // pointer to path string of directory to create |
LPSECURITY_ATTRIBUTES lpSecurityAttributes | // pointer to security descriptor |
); |
Parameters
lpTemplateDirectory
Points to a null-terminated string that specifies the path of the directory to use as a template when creating the new directory.
lpNewDirectory
Points to a null-terminated string that specifies the path of the directory to be created.
lpSecurityAttributes
Pointer to a SECURITY_ATTRIBUTES structure that determines whether the returned handle can be inherited by child processes. If lpSecurityAttributes is NULL, the handle cannot be inherited.
Windows NT: The lpSecurityDescriptor member of the structure specifies a security descriptor for the new directory. If lpSecurityAttributes is NULL, the directory gets a default security descriptor. The target file system must support security on files and directories for this parameter to have an effect.
Windows 95: The lpSecurityDescriptor member of the structure is ignored.
Return Values
If the function succeeds, the return value is nonzero.
If the function fails, the return value is zero. To get extended error information, call GetLastError.
Remarks
The CreateDirectoryEx function allows you to create directories that inherit stream information from other directories. This function is useful, for example, when dealing with Macintosh directories, which have a resource stream that is needed to properly identify directory contents as an attribute.
Windows NT:
Some file systems, such as NTFS, support compression for individual files and directories. On volumes formatted for such a file system, a new directory inherits the compression attribute of its parent directory.
You can obtain a handle to a directory by calling the CreateFile function with the FILE_FLAG_BACKUP_SEMANTICS flag set. See CreateFile for a code example.
See Also
CreateDirectory, CreateFile, RemoveDirectory, SECURITY_ATTRIBUTES