我在日志中find了对以下格式文件的引用:
\\?\C:\Path\path\file.log
我无法find\“\”的顺序是什么意思。 我相信反斜杠之间的部分是指主机名。
例如,在我的Windows电脑上,以下工作就好了:
dir \\?\C:\
而且,同样的结果也很好:
dir \\.\C:\
问题:
长时间阅读,但值得一读,如果你在这个领域: http : //msdn.microsoft.com/en-us/library/windows/desktop/aa365247%28v=vs.85%29.aspx
提取:
Windows API有许多功能,也有Unicode版本允许扩展长度路径的最大总路径长度为32,767个字符。 此类路径由用反斜杠分隔的组件组成,每个组件由
GetVolumeInformation
函数的lpMaximumComponentLength
参数(此值通常为255个字符)中返回的值组成。 要指定扩展路径,请使用"\\?\"
前缀。 例如,"\\?\D:\very long path"
。
和:
"\\?\"
前缀也可以用于根据通用命名约定(UNC)构建的路径。 要使用UNC指定这样的路径,请使用"\\?\UNC\"
前缀。 例如,"\\?\UNC\server\share"
,其中"server"
是计算机的名称,"share"
是共享文件夹的名称。 这些前缀不被用作路径本身的一部分。 它们表示应该通过最小的修改将路径传递给系统,这意味着您不能使用正斜杠来表示路径分隔符,或者表示当前目录的句点,或者使用双点来表示父目录。 因为不能使用相对路径的"\\?\"
前缀,所以相对路径始终限制为总共MAX_PATH
字符。
Windows API分析文件I / O的输入字符串。 除此之外,它将/
转换为\
将名称转换为一个NT风格的名称,或解释的一部分.
和..
伪目录。 除了少数例外,Windows API还将路径名限制为260个字符。
记录的\\?\
前缀的目的是:
对于文件I / O,路径字符串的“\\?\”前缀告诉Windows API禁用所有字符串解析并将紧随其后的字符串直接发送到文件系统。
这允许使用.
或..
在路径名称中,以及如果底层文件系统支持较大的路径和文件名称,则解除260个字符的路径名称限制。