Calculate drive total/free/available space
using System;
using System.Collections.Generic;
using System.IO;
using System.Text;
namespace ConsoleApplication5
{
class Program
{
static void Main(string[] args)
{
long? systemTotalSpace = GetDriveTotalSpace(Path.GetPathRoot(Environment.SystemDirectory));
long? systemAvailableSpace = GetDriveFreeSpace(Path.GetPathRoot(Environment.SystemDirectory));
long? remoteAvailableSpace = GetDriveOccupiedSpace(Path.GetPathRoot(Environment.SystemDirectory));
if(systemTotalSpace.HasValue)
Console.WriteLine("C: total space " + ConvertBytesToGString(systemTotalSpace.Value));
if (systemAvailableSpace.HasValue)
Console.WriteLine("C: free space " + ConvertBytesToGString(systemAvailableSpace.Value));
if (remoteAvailableSpace.HasValue)
Console.WriteLine("C: occupied space " + ConvertBytesToGString(remoteAvailableSpace.Value));
Console.ReadKey();
}
static string ConvertBytesToGString(long size)
{
string[] Suffix = { "b", "K", "M", "G", "T" };
const long Unit = 1024;
int sIndex = 0;
decimal dSize = new decimal(size);
while (dSize > Unit)
{
dSize = dSize / Unit;
sIndex++;
}
return string.Format("{0} {1} ", Math.Round(dSize, 2), Suffix[sIndex]);
}
static long? GetDriveOccupiedSpace(string driveName)
{
DriveInfo[] allDrives = DriveInfo.GetDrives();
foreach (DriveInfo d in allDrives)
{
if (d.Name.Equals(driveName, StringComparison.OrdinalIgnoreCase))
{
return d.TotalSize - d.TotalFreeSpace;
}
}
return null;
}
static long? GetDriveTotalSpace(string driveName)
{
DriveInfo[] allDrives = DriveInfo.GetDrives();
foreach (DriveInfo d in allDrives)
{
if (d.Name.Equals(driveName, StringComparison.OrdinalIgnoreCase))
{
return d.TotalSize;
}
}
return null;
}
static long? GetDriveFreeSpace(string driveName)
{
DriveInfo[] allDrives = DriveInfo.GetDrives();
foreach (DriveInfo d in allDrives)
{
if (d.Name.Equals(driveName, StringComparison.OrdinalIgnoreCase))
{
return d.AvailableFreeSpace; //Available free space for current user
}
}
return null;
}
}
}
Calculate drive total/free/available space的更多相关文章
- Disk Space Usage 术语理解:unallocated, unused and reserved
通过standard reports查看Disk Usage,选中Database,右击,选择Reports->Standard Reports->Disk Space Usage,截图如 ...
- How to Calculate difference between two dates in C# z
Do you need to find the difference in number of days, hours or even minute between the two date rang ...
- ZOJ 2476 Total Amount
题目链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=2476 Time Limit: 2 Seconds ...
- ZOJ 2476 Total Amount 字符串模拟
- Total Amount Time Limit:2000MS Memory Limit:65536KB 64bit IO Format:%lld & %llu Submit ...
- psutil官方文档
psutil documentation¶ Quick links Home page Install Blog Forum Download Development guide What’s new ...
- 【OS】NMON的简介和使用
[OS]NMON的简介和使用 目前NMON已开源,以sourceforge为根据地,网址是http://nmon.sourceforge.net. 1. 目的 本文介绍操作系统监控工具Nmon的概念. ...
- 监控系统信息模块psutil
About psutil (python system and process utilities) is a cross-platform library for retrieving inform ...
- 非常全面的SQL Server巡检脚本来自sqlskills团队的Glenn Berry 大牛
非常全面的SQL Server巡检脚本来自sqlskills团队的Glenn Berry 大牛 Glenn Berry 大牛会对这个脚本持续更新 -- SQL Server 2012 Diagnost ...
- SQL Server 诊断查询-(2)
Query #13 SQL Server Error Log(FC) -- Shows you where the SQL Server failover cluster diagnostic log ...
随机推荐
- 使用Rails 4.2+ 测试异步邮件系统
[导读]异步测试总是一个很大的问题,邮件发送测试更是让很多开发同学不知道从哪里入手.在新版的Rails里,这类测试在很大程度上被简化了. 以下为译文 在编写需要发送邮件的应用时,控制器是绝不能被阻塞的 ...
- POJ 3696 The Luckiest number (欧拉函数,好题)
该题没思路,参考了网上各种题解.... 注意到凡是那种11111..... 22222..... 33333.....之类的序列都可用这个式子来表示:k*(10^x-1)/9进而简化:8 * (10^ ...
- css系列-间隔与间距实例
<!doctype html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- ==和equals的区别
== :是判断两个变量或实例是不是指向同一个内存空间equals :是判断两个变量或实例所指向的内存空间的值是不是相同 结论:欲比较栈中数据是否相等,请用= =:欲比较堆中数据是否相等,请用equal ...
- zoj 3057 Beans Game 博弈论
思路:三维DP,刚开始用记忆化搜索,MLE…… 后来改为直接预处理所有的情况. 总之就是必败态的后继是必胜态!!! 代码如下: #include<iostream> #include< ...
- iOS开发--应用程序上线
iOS应用上线 http://www.jianshu.com/p/ffddc5e5f0b9 iOS真机测试 http://www.jianshu.com/p/986e02d38f1b iOS应用程序打 ...
- android-exploitme(一):生成apk
exploitme是一个国外的android安全测试环境,http://securitycompass.github.io/AndroidLabs/index.html,通过它可以学习一些基本的测试方 ...
- 存储入门 – RAID技术(大图解释)
对于RAID,一直都知道个概念,但是对于细节没有去仔细的研究过.正好昨天Training的时候, 老师讲解了RAID的内容,所以顺便就整理一下.很多内容都是参考了ISMv2这本书. RAID中用到的技 ...
- Gravitational Teleport 是一个先进的 SSH 服务器,基于 Golang SSH 构建,完全兼容 OpenSSH
Gravitational Teleport 是一个先进的 SSH 服务器,可通过 SSH 或者 HTTPS 远程访问 Linux 服务器.其目的是为了替代 sshd.Teleport 可以轻松让团队 ...
- 文章投稿 latex 生成 pdf的字体Embeded问题解决(转自兵马俑BBS)
此法可以把所有字体转为Embedded,先生成*.ps文件,下载ghostscrip8.51和GSView4.7 安装,用gsview4.7转换*.ps->*.pdf,在gsview中File- ...