我想获取硬盘的逻辑盘符,用 string[] dirs = Directory.GetLogicalDrives();和ManagementClass diskClass = new ManagementClass("Win32_LogicalDisk");ManagementObjectCollection disks = diskClass.GetInstances();获取到的全都是所有磁盘的盘符,有没有什么方法,可以只获取硬盘的盘符,其他的,如光驱、U盘的,我都不要啊?
调试欢乐多
{
ManagementClass diskClass = new ManagementClass("Win32_LogicalDisk");
ManagementObjectCollection disks = diskClass.GetInstances();
foreach(ManagementObject disk in disks)
{
try
{
Console.WriteLine(disk["Name"].ToString());
}
catch(Exception exc)
{
MessageBox.Show(exc.Message, "提示");
}
} ManagementObjectSearcher searcher = new ManagementObjectSearcher("SELECT * FROM Win32_PhysicalMedia");
String hardDiskID=null;
foreach (ManagementObject mo in searcher.Get())
{
hardDiskID = mo["SerialNumber"].ToString().Trim();
break;
}
DriveInfo[] dis = DriveInfo.GetDrives(); string str = "";
string str1 = "";
foreach (DriveInfo di in dis)
{
if (di.DriveType == DriveType.Fixed)//磁盘类型为硬盘。
{
str += di.Name;
}
}
这个就可以解决了。
//难道是这个
DriveInfo[] s = DriveInfo.GetDrives();
foreach (DriveInfo drive in s)
{
if (drive.DriveType == DriveType.Fixed)
{
MessageBox.Show("当前插入的盘符为:" + drive.Name.ToString());
}
}