从 UNC 路径检索服务器名称

问题描述 投票:0回答:5

Windows 中是否有从 UNC 路径检索服务器名称的 api? (\服务器\共享)
还是我需要自己做?
我找到了 PathStripToRoot 但它不起作用。

windows winapi network-programming
5个回答
1
投票

我不知道用于解析 UNC 路径的 Win32 API;但是您应该检查:

  • \\computername\share
  • \\?\UNC\computername\share
    (人们用它来访问> 260个字符的长路径)
  • 您也可以选择处理这种情况:
    smb://computername/share
    和这种情况
    hostname:/directorypath/resource

阅读此处了解更多信息


1
投票

这尚未经过测试,但也许 PathIsUNC() 和 PathFindNextComponent() 的组合可以解决问题。


0
投票

我不知道是否有专门的API,我可能会自己实现简单的字符串处理(跳过“\”或返回null,查找下一个\或字符串末尾并返回该子字符串)首先调用 PathIsUNC()


0
投票

如果您将以纯文本形式接收数据,您应该能够使用简单的正则表达式来解析它,不确定您使用什么语言,但我倾向于使用 perk 进行这样的快速搜索。假设您有一个包含多行的大文档,每行包含一个路径,您可以在 \ 上搜索 m/\\([0-9][0-9][0-9]\.(重复3次,当然不记得ip地址要求你可能需要修改第一个)然后\)?为了使其可选并包含尾部斜杠,最后是 (.*)\/ig 它很粗糙,但应该可以解决问题,并且路径名应该在 $2 中以供使用!

我希望这足够清楚!


0
投票

PathIsUNCEx()
API,我们可以将指针传递给字符串。当此函数返回
TRUE
时,指向的字符串接收给定 UNC 路径的服务器部分。

© www.soinside.com 2019 - 2024. All rights reserved.