¿Cómo puedo enumerar los recursos compartidos de red y las carpetas web en C #?

.Net nos proporciona un control FolderBrowserDialog para buscar carpetas. Sin embargo, este es un cuadro de diálogo modal. Necesito crear un control de usuario que pueda colocar en mi formulario. Por lo tanto, he estado buscando crear el mío, donde necesito obtener todas las unidades locales, unidades de red mapeadas, recursos compartidos UNC y carpetas web (WebDAV / SharePoint). Estoy usando Windows 7 y .Net 4.0.

Unidades de red local y mapeada
Puedo obtener las unidades locales de DriveInfo.GetDrives (). Sin embargo, estos solo me muestran las unidades que están disponibles / en línea. En el Explorador de Windows, también verá unidades de red asignadas que están desconectadas / no disponibles.

Carpetas de red / Acciones UNC
De lo que he encontrado hasta ahora, no parece haber un mecanismo en .Net para enumerar las acciones de UNC. Parece que tengo que usar las API de Interop to Win32 para usar laWNetOpenEnum yWNetEnumResource funciones para enumerar la vecindad de la red. Lo hice funcionar, pero me preguntaba si no había otra manera.

Web (WebDAV) Carpetas y SharePoint
En el Explorador de Windows configuré algunas carpetas de WebDAV. Usando las mismas llamadas Interop arribaWNetOpenENum yWNetENumResource Obtuve un nodo "Web Client Network" y aparecieron las carpetas WebDAV que estaban conectadas y accesibles.

Preguntas

¿Cómo obtengo las unidades de red asignadas que están configuradas, pero que están fuera de línea? ¿Hay otra forma de enumerar los recursos compartidos de UNC, o estoy atascado con el uso de las llamadas de interoperabilidad mencionadas anteriormente?LosWNetEnumResource me estaba devolviendo un nodo vacío para "Microsoft Terminal Services". ¿Cómo puedo filtrar esto sin filtrar según el texto en inglés?Las carpetas web devueltas porWNetEnumResource no son los nombres fáciles de usar que les asigné cuando los creé, pero están en el formato de Dirección IP @ Puerto, p. @\\nnn.nnn.nnn.nnn@18123. ¿Cómo obtengo los nombres fáciles de usar para las carpetas web?Las carpetas web que estaban fuera de línea no aparecieron en absoluto, pero en el Explorador de Windows están apareciendo. ¿Alguna sugerencia sobre cómo obtener los que están fuera de línea?

Respuestas a la pregunta(2)

Su respuesta a la pregunta