方法一:利用System.IO.DriveInfo.GetDrives方法来获取

///
        /// 获取指定驱动器的空间总大小(单位为B)
        ///
        ///  只需输入代表驱动器的字母即可 (大写)
        ///
        public static long GetHardDiskSpace(string str_HardDiskName)
        {
            long totalSize= new long();
            str_HardDiskName=str_HardDiskName +":\\";
            System.IO.DriveInfo[] drives = System.IO.DriveInfo.GetDrives();
            foreach (System.IO.DriveInfo drive in drives)
            {
                if (drive.Name == str_HardDiskName)
                {
                    totalSize = drive.TotalSize / (1024 * 1024 * 1024);
                }
            }
            return totalSize;
        }

        ///
        /// 获取指定驱动器的剩余空间总大小(单位为B)
        ///
        ///  只需输入代表驱动器的字母即可
        ///
        public static long GetHardDiskFreeSpace(string str_HardDiskName)
        {
            long freeSpace = new long();
            str_HardDiskName = str_HardDiskName + ":\\";
            System.IO.DriveInfo[] drives = System.IO.DriveInfo.GetDrives();
            foreach (System.IO.DriveInfo drive in drives)
            {
                if (drive.Name == str_HardDiskName)
                {
                    freeSpace = drive.TotalFreeSpace / (1024 * 1024 * 1024);
                }
            }
            return freeSpace;
        }

方法二:利用ManagementClass("Win32_LogicalDisk")来获取

List<Dictionary<string, string>> diskInfoDic = new List<Dictionary<string, string>>();
ManagementClass diskClass = new ManagementClass("Win32_LogicalDisk");
			ManagementObjectCollection disks = diskClass.GetInstances();
			foreach(ManagementObject disk in disks)
			{
				Dictionary<string, string> diskInfo = new Dictionary<string, string>();
				try
				{
					// 磁盘名称
					diskInfo["Name"] =disk["Name"].ToString();
					// 磁盘描述
					diskInfo["Description"]=disk["Description"].ToString();
					// 磁盘总容量,可用空间,已用空间
					if (System.Convert.ToInt64(disk["Size"]) > 0)
					{
						long totalSpace = System.Convert.ToInt64(disk["Size"]) / MB;
						long freeSpace = System.Convert.ToInt64(disk["FreeSpace"]) / MB;
						long usedSpace = totalSpace - freeSpace;
                        			diskInfo["totalSpace"]=totalSpace.ToString();
						diskInfo["usedSpace"]=usedSpace.ToString();
						diskInfo["freeSpace"]=freeSpace.ToString();
					}
					diskInfoDic.Add(diskInfo);
				}
				catch(Exception ex)
				{
					Throw ex;
				}
			}

更多IT相关资讯与技术文章,欢迎光临我的个人网站:http://www.zuowenjun.cn/

C# 获取磁盘空间大小的方法的更多相关文章

  1. Delphi实现获取磁盘空间大小的方法

    unit Unit1; interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, ...

  2. linux中获取堆栈空间大小的方法

    #include   <stdio.h> #include   <stdlib.h> #include   <sys/time.h> #include   < ...

  3. qt 获取磁盘空间大小,cpu利用率,内存使用率

    转自:http://www.qtcn.org/bbs/read-htm-tid-60613.html. 1:封装成一个类,直接调用即可.已经在多个商业项目中使用.2:所有功能全平台 win linux ...

  4. 16、C++获取磁盘空间的方法

    使用 C# 获取磁盘空间的方法: public async static Task<int> GetFreeSpace() { StorageFolder localFolder = Ap ...

  5. 增加VirtualBox虚拟机的磁盘空间大小(Host:Win7 VirtualBox5.0.16 VM:Win10)

    1 前言 网上关于增加VirtualBox虚拟机的磁盘空间大小的文章非常非常多,这里我之所以再写一篇,是因为在参照这些文章做的时候,由于VirtualBox的版本更新以及其他一些环境问题,碰到到一些问 ...

  6. 查看Linux磁盘空间大小命令

    发表于:2012-09-17 10:25   查看Linux磁盘空间大小 一.df 命令: df 是来自于coreutils 软件包,系统安装时,就自带的:我们通过这个命令可以查看磁盘的使用情况以及文 ...

  7. Linux 查看磁盘空间大小

    (1)查看文件大小 1. 查看当前文件夹下所有文件大小(包括子文件夹)    du -sh   2.查看var目录下文件大小   du -sh var   3.查看指定文件夹下所有文件大小(包括子文件 ...

  8. Ubuntu 查看文件以及磁盘空间大小管理

    (1)查看文件大小  查看当前文件夹下所有文件大小(包括子文件夹)    du -sh   # du -h15M     ./package16K     ./.fontconfig4.0K    . ...

  9. Ubuntu 查看文件以及磁盘空间大小命令df

    (1)查看文件大小 查看当前文件夹下所有文件大小(包括子文件夹)    du -sh   # du -h 15M     ./package 16K     ./.fontconfig 4.0K    ...

随机推荐

  1. OracleSugar ORM框架的诞生,代码开源

    经过四天的努力终于将SqlSugar ORM 成功支持ORACLE数据库 优点: 1.高性能,达到原生最高水准,比SqlHelper性能要高,比Dapper快30% 比EF快50% 2.支持多种数据库 ...

  2. 使用MegaCli工具查看Raid磁盘阵列状态

    转载自:http://home.51.com/chenjianghui1987/diary/item/10051836.html 文章本身我不做过多修改了,在这里我就把自己在安装时候碰到的难点跟大家提 ...

  3. hadoop +zookeeper + hbase 单节点安装

    项目描述: 今天花了680元买了阿里云的一台内存1G, 带宽1M 的云主机. 想以后方便测试用,而且想把自己的博客签到自己的主机上.所以自己就搭了一个测试的环境. 可以用来进行基本的hbase 入库, ...

  4. Android开发之三种动画

    转载:http://www.cnblogs.com/angeldevil/archive/2011/12/02/2271096.html http://www.lightskystreet.com/2 ...

  5. phpDesigner 7.2.5 注册码 更改 语法高亮 主题

    注册码: 用户名:www.xiazaiba.com 序列号:43AB0D432A29EE238CCE0F884D84D8A18498498E98298A98568AD05A0B40 验证码:7S2FF ...

  6. Spring事务管理中@Transactional的参数配置

    Spring作为低侵入的Java EE框架之一,能够很好地与其他框架进行整合,其中Spring与Hibernate的整合实现的事务管理是常用的一种功能. 所谓事务,就必须具备ACID特性,即原子性.一 ...

  7. 【移动开发】自定义ProgressBar

    <ProgressBar android:layout_centerInParent="true" android:layout_width="30dp" ...

  8. vue添加class类名

    <!DOCTYPE HTML> <html lang="en-US"> <head> <meta charset="UTF-8& ...

  9. MT【293】拐点处切线

    (2018浙江高考压轴题)已知函数$f(x)=\sqrt{x}-\ln x.$(2)若$a\le 3-4\ln 2,$证明:对于任意$k>0$,直线$y=kx+a$ 与曲线$y=f(x)$有唯一 ...

  10. java 遍历Map的4种方法

    在Java中如何遍历Map对象 How to Iterate Over a Map in Java 在java中遍历Map有不少的方法.我们看一下最常用的方法及其优缺点. 既然java中的所有map都 ...