【问题标题】:Get directories of remote Server [duplicate]获取远程服务器的目录[重复]
【发布时间】:2014-02-21 15:45:02
【问题描述】:

我正在尝试获取远程服务器的所有目录。

例如: path: "\\Servename\folder" - 有效!

path: "\\Servename" - 错误

我试过这个:

DirectoryInfo dir = new DirectoryInfo (@"\\SERVERNAME"); <- Error happens here
//Get Directories from \\SERVERNAME
DirectoryInfo[] dirInfos = dir.GetDirectories();

错误:ERROR: The UNC path should be of the form \\server\share

【问题讨论】:

  • 我认为无法通过这种方式获取共享列表,即使您可以在资源管理器中浏览它。但是,我没有答案,因为我不知道哪些 API 涵盖了这一点。
  • 没有\\Servername 目录。这些是远程计算机上的已发布共享,而不是文件系统目录。或许可以使用 WMI 或 SMB 来枚举共享,但仅此而已。
  • 实际上我认为我正在使用文件系统目录。我做错了吗?如果我是,我怎样才能通过传递服务器名来获取所有目录?
  • 我尝试使用该代码但不起作用。那只显示本地共享,我想要远程“共享”。我尝试了管理,但在访问“访问被拒绝”时出错。如果我的模拟工作正常,如何在访问中出错?

标签: c# directoryinfo getdirectories


【解决方案1】:

原因是您需要读取可用的共享,而不仅仅是目录,正如 cmets 所回答的那样。

但是,获取服务器上所有可用共享的列表有点复杂,它已经在另一个问题中得到了回答:Get a list of all UNC shared folders on a local network server

投票最多的答案是Network Shares and UNC paths

【讨论】:

  • ShareCollection 的命名空间是什么! Visual Studio 2012 中不存在 System.Collections.ReadOnlyCollection。我已经尝试过管理类,但给我错误“访问被拒绝”。我已经实现了模拟
  • 需要下载codeproject上提供的源码,有ShareCollection的定义
  • 我尝试使用该代码但不起作用。那只显示本地共享,我想要远程“共享”。我尝试了管理,但在访问“访问被拒绝”时出错。如果我的模拟工作正常,如何在访问中出错?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2010-09-09
  • 2018-05-30
  • 2015-10-05
  • 1970-01-01
  • 1970-01-01
  • 2010-10-18
相关资源
最近更新 更多