获取硬盘空间使用情况

1、项目先添加引用 (System.Management )

2、新建hardDiskPartition.cs 盘符信息类

public class HardDiskPartition
    {
        #region Data
        private string _PartitionName;
        private double _FreeSpace;
        private double _SumSpace;
        #endregion //Data

        #region Properties
        /// 
        /// 空余大小
        /// 
        public double FreeSpace
        {
            get { return _FreeSpace; }
            set { this._FreeSpace = value; }
        }
        /// 
        /// 使用空间
        /// 
        public double UseSpace
        {
            get { return _SumSpace - _FreeSpace; }
        }
        /// 
        /// 总空间
        /// 
        public double SumSpace
        {
            get { return _SumSpace; }
            set { this._SumSpace = value; }
        }
        /// 
        /// 分区名称
        /// 
        public string PartitionName
        {
            get { return _PartitionName; }
            set { this._PartitionName = value; }
        }
        /// 
        /// 是否主分区
        /// 
        public bool IsPrimary
        {
            get
            {
                //判断是否为系统安装分区
                if (System.Environment.GetEnvironmentVariable("windir").Remove(2) == this._PartitionName)
                {
                    return true;
                }
                else
                {
                    return false;
                }
            }
        }
        #endregion //Properties
    }

3、添加getDiskSpace.cs 获取硬盘空间使用情况类

public class getDiskSpace
    {
        /// <summary>
        /// 处理Double值,精确到小数点后几位
        /// </summary>
        /// <param name="_value">值</param>
        /// <param name="Length">精确到小数点后几位</param>
        /// <returns>返回值</returns>
        public double ManagerDoubleValue(double _value, int Length)
        {
            if (Length < 0)
            {
                Length = 0;
            }
            return System.Math.Round(_value, Length);
        }
        /// <summary>
        /// 获取硬盘上所有的盘符空间信息列表
        /// </summary>
        /// <returns></returns>
        public List<HardDiskPartition> GetDiskListInfo()
        {
            List<HardDiskPartition> list = null;
            //指定分区的容量信息
            try
            {
                SelectQuery selectQuery = new SelectQuery("select * from win32_logicaldisk");

                ManagementObjectSearcher searcher = new ManagementObjectSearcher(selectQuery);

                ManagementObjectCollection diskcollection = searcher.Get();
                if (diskcollection != null && diskcollection.Count > 0)
                {
                    list = new List<HardDiskPartition>();
                    HardDiskPartition harddisk = null;
                    foreach (ManagementObject disk in searcher.Get())
                    {
                        int nType = Convert.ToInt32(disk["DriveType"]);
                        if (nType != Convert.ToInt32(DriveType.Fixed))
                        {
                            continue;
                        }
                        else
                        {
                            harddisk = new HardDiskPartition();
                            harddisk.FreeSpace = Convert.ToDouble(disk["FreeSpace"]) / (1024 * 1024 * 1024);
                            harddisk.SumSpace = Convert.ToDouble(disk["Size"]) / (1024 * 1024 * 1024);
                            harddisk.PartitionName = disk["DeviceID"].ToString();
                            list.Add(harddisk);
                        }
                    }
                }
            }
            catch (Exception)
            {

            }
            return list;
        }
        /// <summary>
        /// 获取硬盘空间使用量
        /// </summary>
        /// <returns>返回硬盘空间已使用的百分比数</returns>
        public double getDiskUseSpace()
        {
            //硬盘空间总容量
            double _SumSpace = 0;
            //硬盘空间使用量
            double _UseSumSpace = 0;
            double _UseSpacePercent = 0;
            List<HardDiskPartition> listInfo = GetDiskListInfo();
            if (listInfo != null && listInfo.Count > 0)
            {
                foreach (HardDiskPartition disk in listInfo)
                {
                    _SumSpace += disk.SumSpace;
                    _UseSumSpace += (disk.SumSpace - disk.FreeSpace);
                    //listBox1.Items.Add(string.Format("{0}  总空间:{1} GB,剩余:{2} GB", disk.PartitionName, ManagerDoubleValue(disk.SumSpace, 1), ManagerDoubleValue(disk.FreeSpace, 1)));
                }
            }
            _UseSpacePercent = ManagerDoubleValue(((_UseSumSpace / _SumSpace) * 100), 2);
            return _UseSpacePercent;
        }
    }

4、获取当前电脑硬盘已使用的百分比

   getDiskSpace _getDiskSpace = new getDiskSpace();
   this.toolStripStatusLabel3.Text = "当前硬盘空间:" + _getDiskSpace.getDiskUseSpace() + "%已使用";
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值