“\\?\”在路径之前意味着什么?

时间:2012-06-14 01:38:34

标签: winapi filesystems format filepath

我正在查看FastCopy的代码,我想在其中添加一些功能。

在内部,似乎FastCopy在路径之前以\\?\存储其路径。例如。 \\?\c:\Program Files\Adobe。这些路径直接传递给Windows API函数,如DeleteFileRemoveDirectory等,因此Windows似乎可以理解格式。

但是这些额外字符意味着什么以及为什么FastCopy会以这种方式存储它们?

3 个答案:

答案 0 :(得分:3)

与FastCopy最相关的事情是,它允许您处理超过〜256个字符的文件名。

如果内存服务,它还会阻止Windows解析文件名,寻找\\server\file之类的内容来访问共享文件(尽管你仍然可以使用\\?\UNC\whatever),但这可能不是真正的意图/相关的。

答案 1 :(得分:2)

您指的是Long UNC路径:https://en.wikipedia.org/wiki/Path_%28computing%29希望有所帮助。

答案 2 :(得分:2)

一般来说,这意味着它支持长文件名 - 长度约为32K的名称。

它也可以用于指定UNC路径,例如\\?\ UNC \服务器\共享。

如果没有这种支持,Fastcopy将无法正常访问所有文件。

http://msdn.microsoft.com/en-us/library/windows/desktop/aa365247(v=vs.85).aspx

的详细信息