public void GetInfoDisk(ref List <Disco> Disks) { ManagementObjectSearcher InfoDisk = new ManagementObjectSearcher("root\\CIMV2", "SELECT * FROM Win32_Volume"); foreach (ManagementObject Disk in InfoDisk.Get()) { foreach (PropertyData Propriedade in Disk.Properties) { if (Propriedade.Name.Length > 4 && Propriedade.Name == "Access" && Disk["DeviceID"] != null) { Disco novoDisco = new Disco(); novoDisco.Nome = Disk["Name"].ToString(); novoDisco.DeviceID = Disk["DeviceID"].ToString(); try { novoDisco.Rotulo = Disk["Label"].ToString(); } catch (NullReferenceException) { novoDisco.Rotulo = "null"; } try { novoDisco.NomeUnidade = Disk["Caption"].ToString(); novoDisco.CapacidadeTotal = Conversoes.ConverterUnMedida(Disk["Capacity"].ToString()); novoDisco.CapacidadeLivre = Conversoes.ConverterUnMedida(Disk["FreeSpace"].ToString()); novoDisco.CapacidadeUtilizada = Conversoes.ConverterUnMedida((Convert.ToDouble(Disk["Capacity"]) - Convert.ToDouble(Disk["FreeSpace"])).ToString()); novoDisco.TipoParticao = Disk["FileSystem"].ToString(); } catch (NullReferenceException) { novoDisco.NomeUnidade = "null"; novoDisco.CapacidadeTotal = "null"; novoDisco.CapacidadeLivre = "null"; novoDisco.CapacidadeUtilizada = "null"; novoDisco.TipoParticao = "null"; } switch (Convert.ToInt32(Disk["DriveType"])) { case 1: novoDisco.TipoDisco = "Nenhum diretório raiz"; break; case 2: novoDisco.TipoDisco = "Disco removível"; break; case 3: novoDisco.TipoDisco = "Disco local"; break; case 4: novoDisco.TipoDisco = "Unidade de rede"; break; case 5: novoDisco.TipoDisco = "Disco compacto"; break; case 6: novoDisco.TipoDisco = "Disco RAM"; break; default: novoDisco.TipoDisco = "Desconhecido"; break; } Disks.Add(novoDisco); } } } }