从C#中的DFS路径获取DFS文件夹目标(本地服务器路径)

时间:2018-02-13 21:11:24

标签: c# winapi dfs

我有一个DFS文件夹路径......

\\domain.name\SharesRoot\DFSShare

我需要获取此根链接的实际文件夹目标,或者换句话说,DFSShare正在定位的本地服务器路径

本地服务器路径/文件夹目标如下

\\MyServer\Share\MyShare

我已成功使用NetDfsGetClientInfo()方法从给定的DFS路径中检索一些所需信息

此方法填充的DFS_STORAGE_INFO对象为我提供了以下数据

  • 状态:无关数据
  • ServerName:' MyServer'
  • ShareName:' SharesRoot'

虽然ServerName是我正在寻找的,但ShareName根本没有帮助我。

我需要找出路径是什么 MyServer DFS路径 \\domain.name\SharesRoot\DFSShare 目标

NetDfsGetInfo()给了我1168错误,因此该方法没有帮助,我还没有尝试NetDfsEnum(),但是我的希望并不高,因为它填充了相同的结构为NetDfsGetClientInfo() ...如果有人在这里有任何其他线索我会非常感激!

1 个答案:

答案 0 :(得分:0)

所以似乎NetDfsGetClientInfo()确实是满足我特殊需求的答案。

问题是它的行为会根据它是否在DFS客户端计算机上调用而不是在DFS服务器计算机上调用而发生变化。

在客户端计算机上,该调用返回带有以下数据的DFS_STORAGE_INFO对象:

  • ServerName:'MyServer'
  • ShareName:'分享'

返回此内容后,只需附加子路径,可以使用DFS_INFO_3对象的输入路径和NetDfsGetClientInfo()调用中使用的原始路径

来删除子路径。