usando c # como posso extrair informações sobre os discos rígidos apresentar na máquina local
-
04-07-2019 - |
Pergunta
Eu estou olhando para obter dados como tamanho / capacidade, Serial No, No. modelo, cabeças Setores, Fabricante e dados possivelmente SMART.
Solução
Você pode usar chamadas WMI para informações de acesso sobre os discos rígidos.
// Requer usando System.Management; & System.Management.dll Referência
ManagementObject disk = new ManagementObject("win32_logicaldisk.deviceid=\"c:\"");
disk.Get();
Console.WriteLine("Logical Disk Size = " + disk["Size"] + " bytes");
Console.WriteLine("Logical Disk FreeSpace = " + disk["FreeSpace"] + "bytes");
Outras dicas
Você deve usar a System.Management namespace:
System.Management.ManagementObjectSearcher ms =
new System.Management.ManagementObjectSearcher("SELECT * FROM Win32_DiskDrive");
foreach (ManagementObject mo in ms.Get())
{
System.Console.Write(mo["Model");
}
Para obter detalhes sobre os membros da classe Win32_DiskDrive, confira:
http://msdn.microsoft.com/ en-us / library / aa394132 (VS.85) .aspx
A maneira mais fácil é usar WMI para obter as informações necessárias. Tome pelo olhada na documentação para Win32___DiskDrive em MSDN, que contém uma variedade de propriedades da unidade padrão. Você também pode tentar usar a classe MSStorageDriver_ATAPISmartData WMI, que não consigo encontrar qualquer documentação para no momento, mas deve ter todos os dados inteligente que você está procurando. Aqui está um código de exemplo básica para enumerar todas as unidades e obter suas propriedades:
ManagementClass driveClass = new ManagementClass("Win32_DiskDrive");
ManagementObjectCollection drives = driveClass.GetInstances();
foreach (ManagementObject drive in drives)
{
foreach (PropertyData property in drive.Properties)
{
Console.WriteLine("Property: {0}, Value: {1}", property.Name, property.Value);
}
Console.WriteLine();
}