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,布布扣,bubuko.com
Calculate drive total/free/available space
原文:http://www.cnblogs.com/sskset/p/3580620.html