C# 获取远程服务器的目录

C# 获取远程服务器的目录,c#,directoryinfo,getdirectories,C#,Directoryinfo,Getdirectories,我正在尝试获取远程服务器的所有目录 例如: 路径:“\\Servename\folder”-它可以工作 路径:“\\Servename”-错误 我试过这个: DirectoryInfo dir = new DirectoryInfo (@"\\SERVERNAME"); <- Error happens here //Get Directories from \\SERVERNAME DirectoryInfo[] dirInfos = dir.GetDirectories(); Dir

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

例如:
路径:“\\Servename\folder”
-它可以工作

路径:“\\Servename”
-错误

我试过这个:

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

DirectoryInfo dir=newdirectoryinfo(@“\\SERVERNAME”) 原因是您需要阅读可用的共享,而不仅仅是目录,正如注释所回答的那样

但是,获取服务器上所有可用共享的列表有点复杂,已经在另一个问题中得到了回答:


投票最多的答案是

我认为不可能通过这种方式获得共享列表,即使您可以在资源管理器中浏览它。但是,我没有答案,因为我不知道什么API涵盖了这一点。没有
\\Servername
目录。这些是远程计算机上发布的共享,而不是文件系统目录。也许可以使用WMI或SMB来枚举共享,但仅此而已。实际上,我以为我在处理文件系统目录。我做错了吗?如果是,我如何通过传递服务器名来获取所有目录?我尝试过使用该代码,但没有成功。只显示本地共享,我想要远程“共享”。我尝试了管理层,但给出了访问错误“访问被拒绝”。如果模拟正常工作,如何在访问中给出错误?什么是ShareCollection的命名空间!visual studio 2012中不存在System.Collections.ReadOnlyCollection。我已经尝试了管理类,但给出了错误“访问被拒绝”。我已经实现了impersonateYou需要下载codeproject上提供的源代码,这里有
ShareCollection
的定义,我尝试过使用该代码,但不起作用。只显示本地共享,我想要远程“共享”。我尝试了管理层,但给出了访问错误“访问被拒绝”。如果模拟正常工作,如何给出访问错误?