我们使用了格式化显示磁盘空间容量的自定义函数GetSizeUseUnit,当不使用该函数时磁盘容量和可用空间的显示如下:
private string GetSizeUseUnit(string size) { double dSpace = Convert.ToDouble(size); string sSpace = dSpace.ToString("N"); string[] tmp; string rtnSize = "0";
tmp = sSpace.Split(','); switch (tmp.GetUpperBound(0)) { case 0: rtnSize = tmp[0] + " 字节"; break; case 1: rtnSize = tmp[0] + "." + tmp[1].Substring(0,2) + " K"; break; case 2: rtnSize = tmp[0] + "." + tmp[1].Substring(0, 2) + " M"; break; case 3: rtnSize = tmp[0] + "." + tmp[1].Substring(0, 2) + " G"; break; case 4: rtnSize = tmp[0] + "." + tmp[1].Substring(0, 2) + " T"; break; } return rtnSize; } |
使用了上述自定义格式化显示的函数后,磁盘容量和可用空间的显示就显得非常简洁和直观。
最后,为了确保在窗体启动时自动获取驱动器信息,需要在窗体的Load事件中模拟对Button1的单击操作,代码如下:
private void Form1_Load(object sender, EventArgs e) { button1_Click(sender, e); } |
四、 总结 我们利用.Net框架System.Management 命名空间所提供的WMI封装非常简单的实现了获取逻辑驱动器的详细信息,除了上述信息我们还可以轻松的获取Windows资源大部分信息,比起使用Win32API要更加简单和有效。该示例程序在Windows XP SP2 + Visual Studio 2005 下编译和调试通过。
查看本文来源