AlirezaH said:
How to measure hard disk capacity?
This will do a little more:
using System;
using System.Management;
namespace sample {
/// <summary>
/// Displays disk space information for all connected hard drives.
/// </summary>
class freeSpace {
/// <summary>
/// The main entry point for the application.
/// </summary>
[STAThread]
public static void Main() {
string query = "select name, FreeSpace, Size from win32_logicaldisk
where drivetype=3";
ManagementObjectSearcher searcher = new ManagementObjectSearcher(query);
foreach(ManagementObject manobj in searcher.Get()) {
double freespace2 = double.Parse(manobj["FreeSpace"].ToString());
double disksize2 = double.Parse(manobj["Size"].ToString());
double pctfree2 = freespace2 / disksize2;
int lengthdiff = disksize2.ToString("N0").Length -
freespace2.ToString("N0").Length;
Console.WriteLine("For drive {0}", manobj["name"]);
Console.WriteLine("\tDisk size: " + disksize2.ToString("N0") + "
bytes");
/// <summary>
/// Format the free space line so the number lines up
/// right-justified with the disk size number
/// when using a fixed-width font.
/// </summary>
switch (lengthdiff) {
case 0:
Console.WriteLine("\tFree space: " + freespace2.ToString("N0") +
" bytes");
break;
case 1:
Console.WriteLine("\tFree space: " + freespace2.ToString("N0") +
" bytes");
break;
case 2:
Console.WriteLine("\tFree space: " + freespace2.ToString("N0")
+ " bytes");
break;
case 3:
Console.WriteLine("\tFree space: " + freespace2.ToString("N0")
+ " bytes");
break;
default :
Console.WriteLine("\tFree space: " + freespace2.ToString("N0") +
" bytes");
break;
}
Console.WriteLine();
Console.WriteLine("\tPercent free: " + pctfree2.ToString("P"));
Console.WriteLine();
Console.WriteLine();
}
}
}
}