我使用以下代码来布局系统上的网络驱动器。我想为持久性添加第三列但是在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
答案 0 :(得分:3)
你总是可以在WMI中完成它而没有任何(好的更少)令人讨厌的cludges。
e.g。
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:更改为您正在检查的驱动器,或者您可能只用该代码段替换所有代码,因为删除WHERE子句将返回所有映射的驱动器。
答案 1 :(得分:2)
这可能会对你有所帮助。它是一个C#类,它枚举网络资源,并且能够区分持久连接:
http://www.codeproject.com/KB/cs/csenumnetworkresources.aspx?msg=964694
我很抱歉它是在C#中,但它做了一些事情,比如编组内存,我不知道怎么做VB。
将常量传递给EnumerateServers
函数以提供对输出的精细控制。您会感兴趣的常数是:
RESOURCE_REMEMBERED
枚举记住的(持久的)连接。