C# 获取硬盘空间信息 盘符总大小、剩余空间、已用空间
来源:互联网 发布:数据截取 威布尔分布 编辑:程序博客网 时间:2024/05/22 03:25
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
原文连接:http://www.cnblogs.com/luowanli/archive/2012/08/15/2639901.html
- C# 获取硬盘空间信息 盘符总大小、剩余空间、已用空间
- QT获取磁盘剩余空间大小
- 获取系统/sdcard存储(剩余空间)大小
- golang获取硬盘分区剩余空间大小
- 查询oracle数据库表空间的大小,已使用空间,剩余空间
- 查询oracle数据库表空间的大小,已使用空间,剩余空间
- 用SQLPLUS调试oracle获取数据库表空间总大小、剩余大小的存储过程
- 获取磁盘剩余空间
- 获取磁盘剩余空间
- iOS获取文件夹中存储空间的大小、手机剩余空间大小、手机总空间大小 工具
- 手机与存储卡空间大小剩余怎么获取
- Android中StatFs获取系统/sdcard存储(剩余空间)大小
- Android中StatFs获取系统/sdcard存储(剩余空间)大小
- Android中StatFs获取系统/sdcard存储(剩余空间)大小
- Android中StatFs获取系统/sdcard存储(剩余空间)大小
- Android中StatFs获取系统/sdcard存储(剩余空间)大小
- Android中StatFs获取系统/sdcard存储(剩余空间)大小
- Linux下C语言获取某分区剩余空间大小
- 出现错误,java.lang.noclassdeffounderror
- python+win32com实现excel自动化
- 程序员如何挑选自己的专业方向
- {单片机}之 单片机中C和汇编混合编程
- 关闭弹出窗口,刷新父窗口
- C# 获取硬盘空间信息 盘符总大小、剩余空间、已用空间
- Linux下SSH跳转无密码登录或执行命令
- JS横向无缝滚动效果
- 学外语的十条经验
- cygwin安装,NDK配置,samples下demo调试,以及手写测试程序
- 对list列表分页
- hadoop集群内lzo的安装与配置
- Linux awk 命令 说明
- Android 工程中各种文件的介绍