C#获取本地或远程磁盘使用信息

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

效果图:

后台代码:

 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);
                }
            }
        }
        #endregion

        private 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;
            }
        }
时间: 2024-10-12 04:54:06

C#获取本地或远程磁盘使用信息的相关文章

获取本地IP和mac等信息

1获取mac protected string getHostMacName() { string mac = ""; ManagementClass mc; mc = new ManagementClass("Win32_NetworkAdapterConfiguration"); ManagementObjectCollection moc = mc.GetInstances(); foreach (ManagementObject mo in moc) { i

VBS获取本地IIS中网站的信息(IP、端口、站点名称)

Dim W3SVC,WebServer,Bindings,ALLBindingInfo,fs,TextFilePath,WebSiteName On Error Resume Next Err.Clear Set fs = WScript.CreateObject("Scripting.FileSystemObject") TextFilePath = fs.GetFile(WScript.ScriptFullName).ParentFolder.Path & "\I

远程桌面连接时获取本地资源的方法

远程桌面连接时获取本地资源的方法有好几种,最常见的应该是FTP,但是FTP需要在远程机器上安装FTP服务器端和在本地机器上安装FTP客户端.在没有安装FTP的情况下,有一种更为便捷的方式,我在这里分享给不知道的朋友. 方法如下: 1.点击开始,运行"mstsc"命令打开远程桌面连接,点击下图标红处的"显示选项": 2.点击下图标红处的"本地资源"选项卡中的"详细信息"按钮: 3.从下图中选择您要获取的本地资源的位置,点击&qu

mysql自动备份数据库,同时ftp上传到指定服务器(scp远程获取本地备份)

最近要把服务器托管到电信机房,所以要对数据库进行备份,同时要把备份ftp上传到公司指定服务器. 一.先安装ftp服务 1.查询是否安装vsftpd: rpm -qa |grep vsftpd (rpm的安装:apt-get install rpm) 或者查询当前ftp进程:ps -ef|grep vsftpd ? 或者 ps -ef|grep ftp 2.如果没有就安装yum install vsftpd 3.安装完后看ftp安装目录:ps -ef|grep ftp 发现我的配置文件默认:/et

java获取cpu,内存,磁盘等信息

原文:java获取cpu,内存,磁盘等信息 源代码下载地址:http://www.zuidaima.com/share/1550463331306496.htm package com.zuidaima.util; import java.io.File; import java.io.InputStreamReader; import java.io.LineNumberReader; import java.util.ArrayList; import java.util.List; imp

获取本地计算机的网络信息

Windows网络编程第六章探测网络中的在线设备 实验:获取本地计算机的网络信息 实验分析:主要练习对GetAdaptersInfo().GetNetworkParams().GetInterfaceInfo().GetIPAddrTable()等API函数的运用,实验中需要注意的是需要两次调用该函数,第一次返回本机要调查信息的数量,第二次调用显示具体信息. GetInfo.h void pAdapter(); void Network(); void NumberOfInterfaces();

IOS本地,APNS远程推送(具体过程)

添加本地推送 ///本地添加 -(void)addLocalPushNotification:(UIButton*)sender; { NSLog(@"%s",__FUNCTION__); UILocalNotification* localNotification=[[UILocalNotification alloc]init]; if (localNotification) { //设置时间当前加20秒 NSDate* pushDate=[NSDate dateWithTimeI

【转】可在广域网部署运行的QQ高仿版 -- GG叽叽V2.0,增加网盘和远程磁盘功能(源码)

尽力2~3周发布一个版本,我这次也没有失言.这段时间内,我仿照QQ的微云功能,在GG中增加了网盘的功能,而且,我还自创了一个QQ没有的新的功能:远程磁盘.正如远程桌面一样,远程磁盘允许我们像访问本地磁盘一样来访问在线的其它用户的磁盘. 一.GG V2.0 新增功能展现 (1)网盘:在服务端为每个用户分配一个网盘,用户通过客户端可以访问自己的网盘.就像QQ的微云一样. (2)远程磁盘:任何一个在线用户,都可以访问其它在线用户的磁盘(先要经过对方的同意). (3)无论是网盘.还是远程磁盘,都支持:上

winPcap_4_获取已安装设备的高级信息

由 pcap_findalldevs_ex() 返回的每一个 pcap_if 结构体,都包含一个 pcap_addr 结构体,这个结构体由如下元素组成: 一个地址列表 一个掩码列表 (each of which corresponds to an entry in the addresses list). 一个广播地址列表 (each of which corresponds to an entry in the addresses list). 一个目的地址列表 (each of which