C# 获取硬盘空间信息 盘符总大小、剩余空间、已用空间
2013-03-21 14:48
302 查看
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.获取盘符空间信息:
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms; using System.Management; using System.IO; namespace ExPortToExcel { public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void btnStart_Click(object sender, EventArgs e) { try { List<HardDiskPartition> listInfo = GetDiskListInfo(); if (listInfo != null && listInfo.Count > 0) { listBox1.Items.Clear(); foreach(HardDiskPartition disk in listInfo) { listBox1.Items.Add(string.Format("{0} 总空间:{1} GB,剩余:{2} GB", disk.PartitionName, ManagerDoubleValue(disk.SumSpace,1), ManagerDoubleValue(disk.FreeSpace,1))); } } } catch (Exception ex) { throw ex; } } /// <summary> /// 处理Double值,精确到小数点后几位 /// </summary> /// <param name="_value">值</param> /// <param name="Length">精确到小数点后几位</param> /// <returns>返回值</returns> private double ManagerDoubleValue(double _value,int Length) { if (Length < 0) { Length = 0; } return System.Math.Round(_value, Length); } /// <summary> /// 获取硬盘上所有的盘符空间信息列表 /// </summary> /// <returns></returns> private 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; } } }
源码金山快盘下载地址:http://www.kuaipan.cn/index.php?ac=file&oid=18034395877212172
原文连接:/article/5749563.html
相关文章推荐
- C# 获取硬盘空间信息 盘符总大小、剩余空间、已用空间
- C#获取电脑型号、系统版本、内存大小、硬盘大小、CPU信息
- 用C#和WMI获取逻辑驱动器详细信息(驱动器类型,文件系统,剩余空间等)
- JAVA获取PC每个盘符,获取每个盘符总大小,剩余空间大小
- C#在Linux下获取文件夹信息(所在磁盘总大小,使用空间,已用空间,使用率)
- vxworks获取硬盘剩余空间大小
- Android 获取系统或SDCARD剩余空间信息
- C#获取硬盘信息
- [No0000112]ComputerInfo,C#获取计算机信息(cpu使用率,内存占用率,硬盘,网络信息)
- Android 获取系统或SDCARD剩余空间信息
- C#获取硬盘编号、CPU编号及类型、内存大小及使用情况
- C#获取文件夹/文件的大小以及占用空间
- 简单获取硬盘剩余空间(Windows)
- Win8 获取硬盘剩余空间
- C#获取文件夹及文件的大小与占用空间的方法
- C#实现获取硬盘编号、CPU编号及类型、内存大小及使用情况
- C# 获取机器的硬件信息(CPU ID序列号, 主板信息,硬盘序列号,系统信息)
- C# 获取磁盘的空间大小
- Android中StatFs获取系统/sdcard存储(剩余空间)大小
- Java:在Windows下通过JConfig获取磁盘剩余空间信息