原文链接 -> 传送门
函数功能:
CreateDirectory 函数用于创建一个新的目录。如果底层的文件系统支持文件和目录的安全性,那么该函数就支持新目录的特定的安全描述符。
调用 CreateDirectoryEx 函数指定一个模板目录。
调用 CreateDirectoryTransacted 函数,将这个操作作为一个事务处理操作来执行。
API 函数原型:
注释:_In_ 说明该参数是输入的,_opt_ 说明该参数是可选的。
BOOL WINAPI CreateDirectory( _In_ LPCTSTR lpPathName, _In_opt_ LPSECURITY_ATTRIBUTES lpSecurityAttributes );
参数解析:
|
参数 |
含义 |
|
lpPathName |
1. 该参数指定将要被创建的目录路径 |
|
hTransaction |
1. 该参数指定一个指向 SECURITY_ATTRIBUTES 结构的指针。该结构中的 lpSecurityDescriptor 成员为新目录指定了一个安全描述符。如果 IpSecurityAttributes 成员为 NULL,那么该目录将得到一个默认的安全描述符。一个新目录的安全描述符中的 ACLs 是继承于它的父目录 |
返回值:
1. 如果该函数运行成功,返回值为非 0;
2. 如果该函数运行失败,返回值为 0。
想要得到更多的错误信息,请调用 GetLastError 函数。
可能的错误包括以下几个:
|
返回的代码 |
描述 |
|
ERROR_ALREADY_EXISTS |
该标识表明指定的目录已经存在 |
|
ERROR_PATH_NOT_FOUND |
该标识表明一个或更多的中间目录不存在;该函数将只会创建路径中的最终目录 |
备注:
1. 像 NTFS 文件系统一样,一些文件系统支持对单个文件和目录的压缩或加密。对于这样的一个文件系统,在卷的格式化上,一个新的目录继承它的父目录的压缩和加密属性。
2. 一个应用程序能够通过调用带有 FILE_FLAG_BACKUP_SEMANTICS 标识集的 CreateFile 函数获得一个目录句柄。代码示例,请参照 CreateFile 函数。
3. 支持查询该对象的安全描述符的继承功能,可以试探性地确定和报告继承是有效的。更多信息,请参照 Automatic Propagation of Inheritable ACEs。
4. 在 Windows 8 和 Windows Server 2012 中,该函数由以下技术支持:
|
技术 |
是否被支持 |
|
Server Message Block (SMB) 3.0 protocol |
是 |
|
SMB 3.0 Transparent Failover (TFO) |
是 |
|
SMB 3.0 with Scale-out File Shares (SO) |
是 |
|
Cluster Shared Volume File System (CsvFS) |
是 |
|
Resilient File System (ReFS) |
是 |
SMB 3.0 不支持TxF。
需求:
|
Minimum supported client |
Windows XP [桌面应用程序 | Windows 商店应用程序] |
|
Minimum supported server |
Windows 2003 服务器版 [桌面应用程序 | Windows 商店应用程序] |
|
Minimum supported phone |
Windows Phone 8 |
|
Header |
FileAPI.h (包含于 Windows.h) |
|
Library |
Kernel32.lib |
|
DLL |
Kernel32.dll |
|
Unicode and ANSI names |
CreateDirectoryW (Unicode) 和 CreateDirectoryA (ANSI) |




