Delphi库函数IsUNCRooted与IsUNCPath的区别是什么?
函数含义与核心差异
两个函数的校验逻辑针对UNC路径的不同层级,不存在功能重复:
IsUNCRooted仅判断路径是否符合UNC根的格式要求:只要路径以双反斜杠\\开头,且双反斜杠后存在至少1个非反斜杠字符,就返回True。它只校验路径开头的根标识,不要求路径包含完整的共享资源结构。IsUNCPath判断的是完整合法的UNC路径:除了满足IsUNCRooted的所有条件外,还要求服务器名后必须存在共享名层级,即路径格式必须满足\\服务器名\共享名或其更深层的子路径,才会返回True。
常见测试用例对比
| 路径示例 | IsUNCRooted返回值 | IsUNCPath返回值 | 说明 |
|---|---|---|---|
\\file-server | True | False | 仅包含服务器名,属于UNC根结构,但不是可用的UNC资源路径 |
\\file-server\public | True | True | 包含服务器名+共享名,是完整的UNC路径 |
\\file-server\public\docs\report.pdf | True | True | 共享名下的深层路径,同时满足两个函数的校验规则 |
D:\backup | False | False | 本地盘符路径,不属于UNC格式 |
\downloads\setup.exe | False | False | 单斜杠开头的相对路径,不符合UNC根标识要求 |
关于inline修饰的说明
IsUNCRooted逻辑非常简单,仅需要校验路径开头的几个字符,因此加inline修饰可以减少调用开销,属于性能优化手段,和功能复用无关。
内容的提问来源于stack exchange,提问作者ardnew
相关产品推荐
相关产品推荐

