Delphi-当一个为UNC,另一个为指定的驱动器号时,比较两个路径名

Delphi-当一个为UNC,另一个为指定的驱动器号时,比较两个路径名,delphi,path,directory-structure,delphi-2006,unc,Delphi,Path,Directory Structure,Delphi 2006,Unc,在这种情况下,用户可以指定两个单独的路径名,我需要检查一个路径名是否在另一个路径名的“内部”。如果两个路径名都是UNC,或者都是基于驱动器号的,我可以这样做,但是如果它们是混合的呢 能否将路径(如“C:\Program Files”)标准化为“\\[此计算机名]\C\Program Files”?显然,我不能走另一条路,因为UNC格式的网络文件夹可能没有对应的驱动器号映射到它。看看函数。+1该函数也有帮助。(@RRUZ,ExpandUNCFileName不是WNetGetUniversalNam

在这种情况下,用户可以指定两个单独的路径名,我需要检查一个路径名是否在另一个路径名的“内部”。如果两个路径名都是UNC,或者都是基于驱动器号的,我可以这样做,但是如果它们是混合的呢


能否将路径(如“C:\Program Files”)标准化为“\\[此计算机名]\C\Program Files”?显然,我不能走另一条路,因为UNC格式的网络文件夹可能没有对应的驱动器号映射到它。

看看函数。

+1该函数也有帮助。(@RRUZ,
ExpandUNCFileName
不是
WNetGetUniversalName
的包装器吗,或者你能通过该调用了解更多信息吗?)我错误地认为,
ExpandUNCFilename
并非在所有情况下都有效,但更彻底的测试表明,如果
ExpandUNCFilename
不返回以“\\`its”开头的名称,因为它是本地驱动器。因此,如果一个版本的
ExpandUNCFileName
'd以驱动器号开头,则一个路径不能位于另一个路径内。是的
ExpandUNCFileName
调用
WNetGetUniversalName
函数,但带有
通用名称信息级别
标志,您也可以将此功能与
远程\u名称\u信息\u级别
值一起使用。因此,您可以直接使用NetGetUniversalName函数构建更完整的解决方案。