Из командной строки можно вызвать net use без каких-либо параметров и получить список подключений к компьютеру на локальном компьютере. Это обеспечивает список подключенных сетевых дисков, а также сетевые подключения к общим сетевым ресурсам и веб-папкам, которые были определены с помощью команды net use
.Как перечислить веб-папки на C#, которые не привязаны к сетевым дискам (например, «net use»)
Можно создать сетевое подключение к общему ресурсу локальной сети следующим образом:
net use \\MyComputerName\MyShareName
Можно создать сетевое подключение к веб-папки (например, WebDAV или SharePoint) следующим образом:
net use http://MySharePoint:12345/Shared%20Documents/MyFolder
Вызов net use
перечислит соединения следующим образом:
C:\>net use
New connections will be remembered.
Status Local Remote Network
-------------------------------------------------------------------------------
Unavailable Q: \\OldServer\OldShare Microsoft Windows Network
OK U: \\MyServerName\Name of Shared Folder
Microsoft Windows Network
Unavailable W: http://MyOldSharePoint Web Client Network
X: \\[email protected]\DavWWWRoot
Web Client Network
\\[email protected]\Shared%20Documents\MyFolder
Web Client Network
OK \\MyComputerName\MyShareName
Microsoft Windows Network
OK \\HostName\ShareName Microsoft Windows Network
The command completed successfully.
Подключаемые сетевые приводы
Я могу получить подключенные диски в C#, позвонив по телефону DriveInfo.GetDrives()
.
Net Использование подключение к сетевым ресурсам
Я могу получить подключение к сетевым ресурсам, которые я создал через PInvoke и использование Windows API, NetUseEnum
.
Net Использование подключения к Web Folders
Я был в состоянии получить список веб-клиент сети серверов посредством использования API-WNetOpenEnum
и WNetEnumResource
для Windows, однако это не получить меня полный путь через к имени и папкам; он получает только имя сервера.
Я не смог найти способ получить сетевые подключения веб-клиента к веб-папкам, которые позволяет определить net use
.
Я уверен, что должен быть Windows API, который может их вернуть. Если кто знает, проконсультируйтесь. Я, конечно, хотел бы избежать использования решения бедного человека, например, вызвать net use
с помощью процесса командной строки и проанализировать его вывод.
Примечание: Я не хочу решение, использующее WMI.
реестра не является оптимальным. Мне был бы интересен API Win32. Разумеется, я ожидал бы, что «сетевое использование» вызывает некоторый Windows API. – Elan
Theres решение в ссылке, которая использует DirectoryEntry, использует объект ActiveDs com – saj
Я пробовал пример кода с помощью DirectoryEntry, и он не обеспечивает то, что мне нужно.Он возвращает для «localhost» все локально определенные папки. Это не то, что мне нужно. Я могу получить их из Windows NetShareEnum. То, что я ищу, - это конкретные сетевые подключения к удаленным веб-папкам в примерах, которые я показывал в веб-клиентской сети (настроенной через «сетевое использование»). – Elan