我想创建名称相对较长的目录(大约> 260个字符。),因此我根据MSDN文档使用CreateDirectoryW(...)API。 但它没有长名称目录(> 260)..任何人都告诉我解决方案???
我在Microsoft Windows 2003 Server上使用Visual Studio 2008
e.g。
CString s = L"\\\\?\\C:\\dir1\\dir2\\<long name > 260 char>";
bool b = CreateDirectoryW(s, NULL);
实际路径是:
CString s = L"\\?\C:\data\temp\abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopq1234567890";
答案 0 :(得分:1)
我认为单个路径组件的限制仍然是255个字符。 \\?\
工具允许您执行的所有操作都是构成一个长度超过260个字符的路径。
来自Naming Files, Paths, and Namespaces:
Windows API有许多函数也具有Unicode版本,允许扩展长度路径,最大总路径长度为32,767个字符。这种类型的路径由反斜杠分隔的组件组成,每个组件都是GetVolumeInformation函数的 lpMaximumComponentLength 参数中返回的值(此值通常为255个字符)。
另外,作为参考,错误123在winerror.h中定义为ERROR_INVALID_NAME