扩展path是否安全使用?

我只是偶然发现MSDN上的这篇文章 ,说一个path可以是259个字符+ NUL终止,但如果你用“\\?\”作为前缀,WinAPI允许你使用

最大总path长度为32,767个字符。

急于看到它的工作我试图从资源pipe理器(在XP SP3)使用该前缀,但它根本不工作(任何path)。 如果您在资源pipe理器栏上放置了\\?\C:\Path\to\an\existing.file file,它会给出“文件未find”错误。

所以我很困惑。 我可以编码的东西(非古代)的Windows,充分利用NTFS上提到的path大小? 为什么Explorer不使用它?

有一组API调用与扩展路径一起工作,有些则不能。 MSDN通常会提到这一点。

不是,如果你只是在windows explorerunder xp中键入该路径,这是行不通的,因为扩展路径语法只是WIn32 API的转义序列,而不是Windows资源管理器。 现在,在Win7中,这是有效的,因为很多人都希望这个工作。

对于较长的路径,如果您更改工作目录或以子目录作为根目录打开资源管理器,它也会有所帮助。

之前有人告诉我RTFM …

请注意,这些示例旨在用于Windows API函数,并不一定适用于Windows外壳程序,如Windows资源管理器。
[…]
对于文件I / O,路径字符串的“\\?\”前缀告诉Windows API禁用所有字符串解析并将紧随其后的字符串直接发送到文件系统。 例如,如果文件系统支持较大的路径和文件名,则可以超出由Windows API执行的MAX_PATH限制。

在次要的说明中,这使我想知道通过使用非法文件名来从资源管理器隐藏文件(或找到这样的文件)的可能性。

你是问为什么Windows中的所有组件不支持它,或者你问是否合法使用这些长路径?

你一定可以安全地使用它们,但是你可能会激怒一些想要使用像Explorer这样的工具来浏览它们的人。 我们一直在野外看到这样的路径。 有时候,当人们不能使用MY_FAVORITE_TOOL删除它时,他们会感到非常惊讶。