c# - 获取本地网络服务器上所有 UNC 共享文件夹的列表

标签 c# .net

我正在尝试获取本地 Intranet 服务器上所有可用共享文件夹的列表。

System.IO.Directory.GetDirectories() 对于像 \\myServer\myShare 这样的路径工作正常,但是对于像这样的路径我遇到了异常\\我的服务器:

Unhandled Exception: System.ArgumentException: The UNC path should be of the form \server\share.

有没有办法获取服务器的所有共享文件夹列表?最终,我正在寻找一种可以根据给定路径处理这两种情况的方法 - 返回给定服务器的所有共享列表和给定网络共享文件夹的所有子目录列表。

最佳答案

这是一个使用 System.Management 的技术(添加对此程序集的引用):

using (ManagementClass shares = new ManagementClass(@"\\NameOfTheRemoteComputer\root\cimv2", "Win32_Share", new ObjectGetOptions())) {
    foreach (ManagementObject share in shares.GetInstances()) {
        Console.WriteLine(share["Name"]);
    }
}

需要适当的权限。

关于c# - 获取本地网络服务器上所有 UNC 共享文件夹的列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3567063/

相关文章:

c# - 在 asp.net Web api 应用程序中自定义 System.Web.Http.AuthorizeAttribute

c# - 避免使用实体类内的方法定义进行查询时出现查询客户端评估错误

c# - 如何输入字符串并从对象中获取同名属性?

c# - 一个关于 LINQ to XML 的简单问题

c# - 如何在 Windows Phone 上合并 2 个图像

c# - 工具包图表旋转标签 X 轴

.net - .csproj 文件中 <SolutionDir> 元素的用途是什么?

c# - 位图错误 - 内存不足

c# - 在监视 View 中格式化结构数据

c# - 将 c# 匿名类对象公开给 COM (JavaScript)