以下内容来自 MSDN 文档中有关CreateDirectory 函数的内容。
对于 248 个字符的路径,存在默认字符串大小限制。此限制与 CreateDirectory 函数如何解析路径有关。
要将此限制扩展到 32,767 个宽字符,请调用函数的 Unicode 版本并在路径前添加“\?\”。有关详细信息,请参阅命名文件。
请注意,在 C++ 中,与在 Perl 中一样,除非您使用原始字符串文字,否则必须对源代码中的 \ 字符进行转义。因此它在源代码中是“\\?\”。
这是一个如何做的简单例子。
BOOL CreatDirWithVeryLongName()
{
BOOL ret = ::CreateDirectoryW(L"\\\\?\\C:\\This is an example directory that has an extreemly long name that is more than 248 characters in length to serve as an example of how to go beyond the normal limit - Note that you will not be able to see it in Windows Explorer due to the fact that it is limited to displaying files with fewer than 260 characters in the name", NULL);
return ret;
}