I ' я пытаюсь получить список всех общих папок, доступных на локальном сервере интрасети.
System.IO.Directory.GetDirectories ()
отлично работает для пути, подобного \\ myServer \ myShare
, однако я получаю исключение для пути, например \\ myServer
:
Исключение необработанного: System.ArgumentException: путь UNC должен иметь форму \ server \ share.
Есть ли способ получить список всех общих папок для сервера? В конечном итоге я ищу метод, который может обрабатывать оба сценария на основе заданного пути - возвращать список всех общих ресурсов для данного сервера и возвращать список всех подкаталогов для данной общей сетевой папки.
Я думаю, это то, что вы ищете http://www.codeproject.com/KB/IP/networkshares.aspx
Вот методика, использующая System.Management
(добавьте ссылку на эту сборку):
using (ManagementClass shares = new ManagementClass(@"\\NameOfTheRemoteComputer\root\cimv2", "Win32_Share", new ObjectGetOptions())) {
foreach (ManagementObject share in shares.GetInstances()) {
Console.WriteLine(share["Name"]);
}
}
Требуются соответствующие разрешения.