日期:2016-12-14  浏览次数:2504 次

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

 

namespace CHENT_MODEL

{

    /// <summary>

    /// 硬盘信息类

    /// </summary>

    public class DiskInfo

    {

        public DiskInfo(string strDiskName, string strVolumeName, string lDiskSize, stringlDiskFreeSpace, string strDiskFileSystem)

        {

            this.strDiskName = strDiskName;//磁盘名称

            this.strVolumeName = strVolumeName;//磁盘标卷

            this.lDiskSize = lDiskSize;//磁盘大小

            this.lDiskFreeSpace = lDiskFreeSpace;//可用磁盘空间

            this.strDiskFileSystem = strDiskFileSystem;//文件系统(FAT32,NTFS等)

        }

 

        private string m_strDiskName;

        /// <summary>

        /// 磁盘名称

        /// </summary>

        public string strDiskName

        {

            get { return m_strDiskName; }

            set { m_strDiskName = value; }

        }

 

        private string m_strVolumeName;

        /// <summary>

        /// 磁盘标卷

        /// </summary>

        public string strVolumeName

        {

            get { return m_strVolumeName; }

            set { m_strVolumeName = value; }

        }

 

        private string m_lDiskSize;

        /// <summary>

        /// 磁盘大小

        /// </summary>

        public string lDiskSize

        {

            get { return m_lDiskSize; }

            set { m_lDiskSize = value; }

        }

 

        private string m_lDiskFreeSpace;

        /// <summary>

        /// 可用磁盘空间

        /// </summary>

        public string lDiskFreeSpace

        {

            get { return m_lDiskFreeSpace; }

            set { m_lDiskFreeSpace = value; }

        }

 

        private string m_strDiskFileSystem;

        /// <summary>

        /// 文件系统(FAT32,NTFS等)

        /// </summary>

        public string strDiskFileSystem

        {

            get { return m_strDiskFileSystem; }

            set { m_strDiskFileSystem = value; }

        }

    }

}

 

方法类

#region 获得分区信息

        /// <summary>

        /// 获取分区信息

        /// </summary>

        private List<DiskInfo> GetDiskInfo()

        {

            List<DiskInfo> lDiskInfoStruct = new List<DiskInfo>();

            try

            {

                //实例化一个ManagementClass类,并将Win32_LogicalDisk作为参数传递进去,

                //这样就可以查询Win32_LogicalDisk这个类里面的一些信息了。

                ManagementClass mClass = new ManagementClass("Win32_LogicalDisk");

 

                //获取Win32_LogicalDisk这个类的所有实例

                ManagementObjectCollection moCollection = mClass.GetInstances();

 

                //对Win32_OperatingSystem这个类进行遍历

                foreach (ManagementObject mObject in moCollection)

                {

                    //判断磁盘是否为固定磁盘,即硬盘

                    if (Int32.Parse(mObject["DriveType"].ToString()) == (int)System.IO.DriveType.Fixed)

                    {

                        lDiskInfoStruct.Add(new DiskInfo(mObject["Name"].ToString(),mObject["VolumeName"].ToString(),

                            (long.Parse(mObject["Size"].ToString()) / 1024.0 / 1024.0 / 1024.0).ToString("0.000") + "G",

                            (long.Parse(mObject["FreeSpace"].ToString()) / 1024.0 / 1024.0 / 1024.0).ToString("0.000") + "G",

                            mObject["FileSystem"].ToString()));

                        //diskInfoStruct.strDiskName = mObject["Name"].ToString();  //获取磁盘名称

                        //diskInfoStruct.strVolumeName = mObject["VolumeName"].ToString();  //获取磁盘标卷

                        //diskInfoStruct.lDiskSize = (long.Parse(mObject["Size"].ToString())/1024.0/1024.0).ToString ();  //获取磁盘大小

                        //diskInfoStruct.lDiskFreeSpace = (long.Parse(mObject["FreeSpace"].ToString())/1024.0/1024.0).ToString ();  //获取磁盘可用空间

                        //diskInfoStruct.strDiskFileSystem = mObject["FileSystem"].ToString();  //获取磁盘文件系统 

                        //lDiskInfo.Add(diskInfoStruct);

                    }

                }

            }

            catch

            { }

            return lDiskInfoStruct;

        }

        /// <summary>

        /// 格式化磁盘信息

        /// </summary>

        public string Disk_String()

        {

            string Disk="";

            List<DiskInfo> lDiskInfoStruct = GetDiskInfo();

            foreach (DiskInfo str in lDiskInfoStruct)

            {

                Disk = Disk +  str.strDiskName + "%%%%";

                Disk = Disk +  str.strVolumeName + "%%%%";

                Disk = Disk +  str.lDiskSize + "%%%%";

                Disk = Disk +  str.lDiskFreeSpace + "%%%%";

                Disk = Disk +  str.strDiskFileSystem + "%%%%";

            }

            return Disk;

        }