C#.NET WINFORM程序 使用ManagementClass获取信息的问题

WINFORM程序,代码如下:publicstaticDataTabletestDisk(){DataTabledt=newDataTable();dt.Columns.... WINFORM程序,代码如下:
public static DataTable testDisk()
{
DataTable dt = new DataTable();
dt.Columns.Add("path");
dt.Columns.Add("totalSpace");
dt.Columns.Add("freeSpace");
dt.Columns.Add("freePencent");

ManagementClass diskClass = new ManagementClass("Win32_LogicalDisk");
ManagementObjectCollection disks = diskClass.GetInstances();
try
{
foreach (ManagementObject disk in disks)
{
DataRow dr;
UInt64 k = 1024;
dr = dt.NewRow();
dr[0] = disk["Name"].ToString();
dr[1] = (UInt64)(disk["FreeSpace"]) / k / k;//转为MB
dr[2] = (UInt64)(disk["Size"]) / k / k;//转为MB
int free = int.Parse((UInt64.Parse(dr[1].ToString())).ToString());
int total = int.Parse((UInt64.Parse(dr[2].ToString())).ToString());
dr[3] = (((free * 1.0000) / (total * 1.0000)) * 100).ToString("f2") + "%";
dr[1] += "MB";
dr[2] += "MB";
dt.Rows.Add(dr);
}

//MessageBox.Show(freeSpace.ToString());

return dt;
}
catch (Exception ex)
{
return dt;
}
}
在WIN7 SERVER2008中获取分区都正常,但是在2012中获取分区返回为空,尝试使用管理员身份运行也不行,求大神帮忙看下是什么地方的问题,是不是SERVER2012中不支持Win32_LogicalDisk,需要换成什么
补充,测试是在VM14.1.3的虚拟机中测试的,无法获取温度功耗传感器参数是可以理解的,但是无法获取磁盘分区信息就很奇怪了。编译环境VS2017,.NET4.7
展开
 我来答
百度网友d517685
2018-12-18
知道答主
回答量:69
采纳率:0%
帮助的人:6.5万
展开全部
这些都是我们自己去选择
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式