【发布时间】:2008-12-16 18:18:57
【问题描述】:
您能否展示在 .NET 中读取驱动器标签或卷名的示例代码?我觉得这需要 WMI,但我讨厌“下拉”到 WMI,因为它就像下拉到基于字符串的 SQL 查询中,因为某些对象可能不存在于某些版本的操作系统或用户上可能无权查询某些数据。我很高兴确信我对 WMI 的看法是错误的......
【问题讨论】:
您能否展示在 .NET 中读取驱动器标签或卷名的示例代码?我觉得这需要 WMI,但我讨厌“下拉”到 WMI,因为它就像下拉到基于字符串的 SQL 查询中,因为某些对象可能不存在于某些版本的操作系统或用户上可能无权查询某些数据。我很高兴确信我对 WMI 的看法是错误的......
【问题讨论】:
不需要 WMI。以下将获取所有卷标:
var labels = from drive in DriveInfo.GetDrives()
select drive.VolumeLabel
【讨论】:
调用 DriveInfo.GetDrives 以获取驱动器信息数组。然后看看DriveInfo.VolumeLabel
【讨论】:
您可以使用 System.IO.DriveInfo 来获取驱动器列表。请参见以下示例:
注意:CDRom 驱动器类型没有卷名。
Using System.IO;
.
.
.
DriveInfo[] driveInfoList = DriveInfo.GetDrives();
foreach (DriveInfo drive in driveInfoList)
{
if (drive.DriveType != DriveType.CDRom)
textBox1.Text += String.Format("Name:{0} Volume:{1}\r\n", drive.Name, drive.VolumeLabel);
else
textBox1.Text += String.Format("Name:{0}\r\n", drive.
}
【讨论】: