C#检查远程或本地磁盘使用率

时间:2021-05-20

因为公司有多个服务器,要检查磁盘的使用情况确定程序放哪个服务器和清理垃圾,所以写个小程序帮忙检查。

效果图:

后台代码:

private void btnCheck_Click(object sender, EventArgs e){listBox1.Items.Clear();if (rbtnRemote.Checked){//远程RemoteDisk();}else{//本地LocalDisk();}}//查看本地private void LocalDisk(){WqlObjectQuery wmiquery = new WqlObjectQuery("select * from Win32_LogiCalDisk");ManagementObjectSearcher wmifind = new ManagementObjectSearcher(wmiquery);//显示ShowInfo(wmifind);}//远程private void RemoteDisk(){if (cbIP.Text == "" | cbUserName.Text == "" | txtPwd.Text == ""){MessageBox.Show("请把信息补充完整!");return;}string ip = cbIP.Text;string username = cbUserName.Text;string password = txtPwd.Text;ConnectionOptions conn = new ConnectionOptions();conn.Username = username;conn.Password = password;conn.Timeout = new TimeSpan(1,1,1,1);//连接时间//ManagementScope 的服务器和命名空间。 string path = string.Format(@"\\{0}\root\cimv2", ip);//表示管理操作的范围(命名空间),使用指定选项初始化ManagementScope 类的、表示指定范围路径的新实例。 ManagementScope scope = new ManagementScope(path, conn); scope.Connect(); //查询string strQuery = "select * from Win32_LogicalDisk ";ObjectQuery query = new ObjectQuery(strQuery);//查询ManagementObjectCollection返回结果集 ManagementObjectSearcher wmifind = new ManagementObjectSearcher(scope, query);ShowInfo(wmifind);}#region 显示磁盘信息private void ShowInfo(ManagementObjectSearcher wmifind){long gb = 1024 * 1024 * 1024;string type = "";string str = "";double freePath = 0d;foreach (var mobj in wmifind.Get()){type = mobj["Description"].ToString();//判断是否是本机固盘if (type == "Local Fixed Disk"){str = " 磁盘名称:" + mobj["Name"].ToString();freePath = Math.Round(Convert.ToDouble(mobj["FreeSpace"]) / gb, 1);str += " 可用空间:" + freePath+ "G";str += " 实际大小:" + Math.Round(Convert.ToDouble(mobj["Size"].ToString()) / gb, 1) + "G";if (freePath < 20){str += " ----请尽快清理!";}listBox1.Items.Add(str);}}}#endregionprivate void rbtnLocal_CheckedChanged(object sender, EventArgs e){//本地选中if (rbtnLocal.Checked == true){cbIP.Enabled = false;cbUserName.Enabled = false;txtPwd.Enabled = false;}}private void rbtnRemote_CheckedChanged(object sender, EventArgs e){if (rbtnRemote.Checked == true){cbIP.Enabled = true;cbUserName.Enabled = true;txtPwd.Enabled = true;}}

声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。

相关文章