C# 获取磁盘空间大小的方法
方法一:利用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# 获取磁盘空间大小的方法的更多相关文章
- Delphi实现获取磁盘空间大小的方法
unit Unit1; interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, ...
- linux中获取堆栈空间大小的方法
#include <stdio.h> #include <stdlib.h> #include <sys/time.h> #include < ...
- qt 获取磁盘空间大小,cpu利用率,内存使用率
转自:http://www.qtcn.org/bbs/read-htm-tid-60613.html. 1:封装成一个类,直接调用即可.已经在多个商业项目中使用.2:所有功能全平台 win linux ...
- 16、C++获取磁盘空间的方法
使用 C# 获取磁盘空间的方法: public async static Task<int> GetFreeSpace() { StorageFolder localFolder = Ap ...
- 增加VirtualBox虚拟机的磁盘空间大小(Host:Win7 VirtualBox5.0.16 VM:Win10)
1 前言 网上关于增加VirtualBox虚拟机的磁盘空间大小的文章非常非常多,这里我之所以再写一篇,是因为在参照这些文章做的时候,由于VirtualBox的版本更新以及其他一些环境问题,碰到到一些问 ...
- 查看Linux磁盘空间大小命令
发表于:2012-09-17 10:25 查看Linux磁盘空间大小 一.df 命令: df 是来自于coreutils 软件包,系统安装时,就自带的:我们通过这个命令可以查看磁盘的使用情况以及文 ...
- Linux 查看磁盘空间大小
(1)查看文件大小 1. 查看当前文件夹下所有文件大小(包括子文件夹) du -sh 2.查看var目录下文件大小 du -sh var 3.查看指定文件夹下所有文件大小(包括子文件 ...
- Ubuntu 查看文件以及磁盘空间大小管理
(1)查看文件大小 查看当前文件夹下所有文件大小(包括子文件夹) du -sh # du -h15M ./package16K ./.fontconfig4.0K . ...
- Ubuntu 查看文件以及磁盘空间大小命令df
(1)查看文件大小 查看当前文件夹下所有文件大小(包括子文件夹) du -sh # du -h 15M ./package 16K ./.fontconfig 4.0K ...
随机推荐
- Java中long和Long有什么区别 (转载)
“Long is a class. long is a primitive. That means Long can be null, where long can't. Long can go an ...
- mac下忘记mysql密码, 重新设置mysql密码
step1: 苹果->系统偏好设置->最下边点mysql 在弹出页面中 关闭mysql服务(点击stop mysql server)step2:进入终端输入:cd /usr/local/m ...
- android开发出现No Launcher activity found!解决方案
在AndroidManifest.xml中的中少了这段代码 <activity android:name=".MainActivity" android:label=&quo ...
- parallels无法启动之大乌龙-流水账版
欢迎访问我的blog:blog.thinkinside.me 早上到公司,像往日一样,开电脑倒茶喝水. 回到座位打开parallels desktop,发现不对,打开PD非常的慢.显示正在初始 ...
- WPF 设置程序开机自动运行(+注册表项)
#region 设置程序开机自动运行(+注册表项) RegistryKey rgkRun = Registry.LocalMachine.OpenSubKey("SOFTWARE\\Micr ...
- jedis:exception is java.lang.VerifyError: Bad type on operand stack
项目中需要用到缓存,经过比较后,选择了redis,客户端使用jedis连接,也使用到了spring提供的spring-data-redis.配置正确后启动tomcat,发现如下异常: ======== ...
- eclipse新建一个Android项目,就会报错android.support.v7.app.ActionBarActivity
解决方法: 今天被这个问题折腾了一下,最后终于找到了解决办法. 产生这个问题,是因为你升级了ADT到version 22,但是还需要升级SDK Tools,Platform Tools,Build T ...
- ssh框架搭建错误集合
1,把jsp放入到WEB-INF/view目录下,struts2.xml配置<result name="success">/WEB-INF/view/home.jsp& ...
- [论文笔记] 一种Java遗留系统服务化切分和封装方法 (计算机学报, 2009)
李翔,怀进鹏,曾晋,高鹏. 一种Java遗留系统服务化切分和封装方法. 计算机学报, 32(9), 2009, p1084-1815 (gs:5) 1. 本文研究从Java遗留系统中切分并封装出Web ...
- Etl之HiveSql调优(设置map reduce 的数量)
前言: 最近发现hivesql的执行速度特别慢,前面我们已经说明了left和union的优化,下面咱们分析一下增加或者减少reduce的数量来提升hsql的速度. 参考:http://www.cnbl ...