我正在查看FastCopy的代码,我想在其中添加一些功能。
在内部,FastCopy 似乎在路径\\?\
之前存储了它的路径。例如。\\?\c:\Program Files\Adobe
. 这些路径直接传递给 Windows API 函数,如DeleteFile
、RemoveDirectory
等,因此 Windows 似乎理解该格式。
但是这些额外的字符是什么意思,为什么 FastCopy 以这种方式存储它们?
我正在查看FastCopy的代码,我想在其中添加一些功能。
在内部,FastCopy 似乎在路径\\?\
之前存储了它的路径。例如。\\?\c:\Program Files\Adobe
. 这些路径直接传递给 Windows API 函数,如DeleteFile
、RemoveDirectory
等,因此 Windows 似乎理解该格式。
但是这些额外的字符是什么意思,为什么 FastCopy 以这种方式存储它们?
与 FastCopy 最相关的可能是它允许您使用长度超过 ~256 个字符的文件名。
如果内存可用,它还会阻止 Windows 解析文件名以查找\\server\file
访问共享文件之类的内容(尽管您仍然可以使用\\?\UNC\whatever
),但这可能不是这里真正的意图/相关内容。
您指的是长 UNC 路径:https ://en.wikipedia.org/wiki/Path_%28computing%29希望对您有所帮助。
一般来说,这意味着它支持长文件名 - 名称最长约为 32K。
它还可用于指定 UNC 路径,例如 \\?\UNC\server\share。
如果没有这种支持,Fastcopy 将无法正确访问所有文件。
更多详细信息,请访问http://msdn.microsoft.com/en-us/library/windows/desktop/aa365247(v=vs.85).aspx