ManagementObject disk=new ManagementObject(
"win32_logicaldisk.deviceid=\"c:\"");
disk.Get();
totalSize.Text=disk["size"].ToString();
这里有两个问题:
a.我已经把本地磁盘所有可用分区都加到comboBox中去了,怎么样才能实现用户在comboBox中选择不同的盘符,显示相应的容量?
b.容量转成MB
"win32_logicaldisk.deviceid=\"c:\"");
disk.Get();
totalSize.Text=disk["size"].ToString();
这里有两个问题:
a.我已经把本地磁盘所有可用分区都加到comboBox中去了,怎么样才能实现用户在comboBox中选择不同的盘符,显示相应的容量?
b.容量转成MB
b.写一个函数计算
public static string ConversionSize(float p_fltSize)
{
int m_intCount = 0;
string m_strUnit;
//
// 计算
//
ComputeSize(ref p_fltSize,ref m_intCount); //
// 判断单位s
//
switch(m_intCount)
{
case 0:
m_strUnit = "B";
break;
case 1:
m_strUnit = "KB";
break;
case 2:
m_strUnit = "MB";
break;
case 3:
m_strUnit = "GB";
break;
default:
m_strUnit = "";
break;
}
//
// 取两位小数
return p_fltSize.ToString(".##") + m_strUnit;
}
private static void ComputeSize(ref float p_fltSize,ref int p_intCount)
{
if(p_fltSize > 1024.0)
{
p_fltSize = p_fltSize / 1024;
p_intCount++;
ComputeSize(ref p_fltSize,ref p_intCount);
}
}
"win32_logicaldisk.deviceid=\"c:\"");
disk.Get();
Console.WriteLine("Logical Disk Size = " + disk["Size"]/1048576 + " M");
把这句的ManagementObject disk=new ManagementObject("win32_logicaldisk.deviceid=\"c:\"");
c换成你的盘符不就可以了么?
disk["size"]是byte
byte转换K转换M应该不难吧?直接除就行了,10241024啊
string Size=length/1048576;
Console.WriteLine("Logical Disk Size = " + Size + " M");
我這樣寫不行:
string S=comboBox.text
ManagementObject disk=new ManagementObject("win32_logicaldisk.deviceid=\S");