CreateDirectory函数创建一个新目录。如果底层文件系统支持对文件和目录的安全性,则该函数将指定的安全描述符应用于新目录。请注意,CreateDirectory没有模板参数,而CreateDirectoryEx没有。
BOOL CreateDirectory(
LPCTSTR 【lpPathName】, | //指向目录路径字符串的指针 |
LPSECURITY_ATTRIBUTES 【lpSecurityAttributes】 | //指向安全描述符的指针 |
); |
参数
【lpPathName】
指向一个以null结尾的字符串,指定要创建的目录的路径。
对于MAX_PATH字符的路径,默认字符串大小限制。此限制与CreateDirectory功能如何解析路径有关。
Windows NT:应用程序可以通过调用宽(W)版本CreateDirectory并将前缀“\\\\?”添加到路径中,超出此限制并发送路径长于MAX_PATH字符。“\\\\?\\”告诉功能关闭路径解析;它允许使用比MAX_PATH长的路径与CreateDirectoryW一起使用。这也适用于UNC名称。“\\\\?\\”作为路径的一部分被忽略。例如,“\\\\?\\ C:\\ myworld \\ private”被视为“C:\\ myworld \\ private”,“\\\\?\\ UNC \\ bill_g_1 \\ hotstuff \\ coolapps”被视为“\\\\ bill_g_1 \\ hotstuff \\ coolapps”。
【lpSecurityAttributes】
指向SECURITY_ATTRIBUTES结构的指针,用于确定返回的句柄是否可以由子进程继承。如果【lpSecurityAttributes】为NULL,则不能继承该句柄。
Windows NT:结构的lpSecurityDescriptor成员指定新目录的安全描述符。如果【lpSecurityAttributes】为NULL,则该目录将获得默认安全描述符。目标文件系统必须支持该参数的文件和目录的安全性才能生效。
Windows 95:结构的lpSecurityDescriptor成员将被忽略。
返回值
如果函数成功,返回值不为零。
如果函数失败,返回值为零。要获取扩展错误信息,请调用GetLastError.
备注
Windows NT:某些文件系统(如NTFS)支持单个文件和目录的压缩。在为这样的文件系统格式化的卷上,新的目录继承其父目录的压缩属性。
Windows NT:应用程序可以通过调用设置了FILE_FLAG_BACKUP_SEMANTICS标志的CreateFile来获取目录的句柄。有关代码示例,请参阅CreateFile.
也可以看看
CreateDirectoryEx, CreateFile, RemoveDirectory, SECURITY_ATTRIBUTES