方法大多是从网上搜到的,由于出处太多,有一些方法又经过了修改,具体出处已无从考证,如有冒犯望谅解,此处仅供学习使用
首先引用System.Management
获取硬盘信息
- 方法一
/// <summary>
/// 硬盘ID,大小
/// </summary>
/// <returns></returns>
public Dictionary<string, string> GetDisk()
{
Dictionary<string, string> dic = new Dictionary<string, string>();
ManagementClass mc = new ManagementClass("Win32_DiskDrive");
ManagementObjectCollection moc = mc.GetInstances();
foreach (ManagementObject mo in moc)
{
string HDid = (string)mo.Properties["Model"].Value;
string bytes = mo["Size"].ToString();
dic.Add(HDid, bytes);
}
moc = null;
mc = null;
return dic;
}
- 方法二
/// <summary>
/// 获取驱动盘符
/// C,D,E,F
/// </summary>
/// <returns></returns>
public List<string> GetRemovableDeviceID()
{
List<string> deviceIDs = new List<string>();
ManagementObjectSearcher query = new ManagementObjectSearcher("SELECT * From Win32_LogicalDisk ");
ManagementObjectCollection queryCollection = query.Get();
foreach (ManagementObject mo in queryCollection)
{
switch (int.Parse(mo["DriveType"].ToString()))
{
case (int)DriveType.Removable: //可以移动磁盘
{
//MessageBox.Show("可以移动磁盘");
deviceIDs.Add(mo["DeviceID"].ToString());
break;
}
case (int)DriveType.Fixed: //本地磁盘
{
//MessageBox.Show("本地磁盘");
deviceIDs.Add(mo["DeviceID"].ToString());
break;
}
case (int)DriveType.CDRom: //CD rom drives
{
//MessageBox.Show("CD rom drives ");
break;
}
case (int)DriveType.Network: //网络驱动
{
//MessageBox.Show("网络驱动器 ");
break;
}
case (int)DriveType.Ram:
{
//MessageBox.Show("驱动器是一个 RAM 磁盘 ");
break;
}
case (int)DriveType.NoRootDirectory:
{
//MessageBox.Show("驱动器没有根目录 ");
break;
}
default: //defalut to folder
{
//MessageBox.Show("驱动器类型未知 ");
break;
}
}
}
return deviceIDs;
}
- 方法三
/// <summary>
/// 物理内存
/// </summary>
/// <returns></returns>