2009-10-18 6 views
1

Я использую следующий код для компоновки сетевых дисков в системе. Я хочу добавить третий столбец для сохранения, но в vb.net. Я не знаю, как проверить, имеет ли накопитель постоянную карту или нет. Какие-либо предложения?vb.net Как проверить, не отображается ли сетевой диск

For Each drive_info As DriveInfo In DriveInfo.GetDrives() 
     If drive_info.DriveType().ToString = "Network" Then 
      With maps.Items.Add(drive_info.Name) 
       .SubItems.Add(drive_info.DriveType().ToString) 
      End With 
     End If 
    Next drive_info 

ответ

2

Возможно, вы всегда делали это в WMI без каких-либо (ну ладно, меньше) неприятных помех.

например.

 
Imports System 
Imports System.Management 

Public Module modmain 
    Sub Main() 
    Dim searcher As New ManagementObjectSearcher("SELECT * FROM Win32_NetworkConnection WHERE LocalName = 'Z:'") 
    Dim obj As ManagementObject 
    For Each obj In searcher.Get 
     Console.WriteLine("{0} {1}", obj.Item("LocalName").ToString, obj.Item("Persistent")) 
    Next 
    End Sub 
End Module 

Очевидно, что вам нужно добавить ссылку на System.Management.dll и изменить Z: на диске, который вы проверяете, или вы могли бы, вероятно, заменить весь код с только что фрагмент кода, как удаление ИНЕКЕ будет возвращать все подключенные диски.

+0

Это делает то, что я ищу, спасибо. Это также дает мне возможность добавить больше данных в мой список, используя класс win32_NetworkConnection, который я сейчас читаю. – MaQleod

2

Это может вам помочь. Это C# класс, который перечисляет сетевые ресурсы, а также обладает способностью различать постоянные соединения:

http://www.codeproject.com/KB/cs/csenumnetworkresources.aspx?msg=964694

Я извиняюсь, что в C#, но это делает некоторые вещи, как Маршалинг память, что я не знаю как сделать в VB.

Константы передаются в функцию EnumerateServers, чтобы обеспечить точное управление выходом. Постоянное вы найдете интересный:

RESOURCE_REMEMBERED 

перебирает запоминаются (постоянное) соединение.

+0

+1. Отличный ответ. Это происходит в моих любимых. – David

 Смежные вопросы

  • Нет связанных вопросов^_^