ภาพรวม
ใช้คลาส DriveInfo ใน System.IO เพื่อดูข้อมูลดิสก์ รวมถึงพื้นที่ว่าง ขนาดทั้งหมด และรูปแบบไฟล์ระบบ
โค้ดตัวอย่าง
using System;
using System.IO;
public class Demo {
public static void Main() {
// ตรวจสอบไดรฟ์ E: (เปลี่ยนตามต้องการ)
DriveInfo drive = new DriveInfo("E");
if (!drive.IsReady) {
Console.WriteLine("Drive not ready");
return;
}
Console.WriteLine($"Drive: {drive.Name}");
Console.WriteLine($"Volume Label: {drive.VolumeLabel}");
Console.WriteLine($"File System: {drive.DriveFormat}");
Console.WriteLine($"Drive Type: {drive.DriveType}");
Console.WriteLine();
// พื้นที่ว่าง (bytes)
long freeSpace = drive.AvailableFreeSpace;
long totalSpace = drive.TotalSize;
long usedSpace = totalSpace - freeSpace;
Console.WriteLine($"Free Space: {FormatBytes(freeSpace)}");
Console.WriteLine($"Total Space: {FormatBytes(totalSpace)}");
Console.WriteLine($"Used Space: {FormatBytes(usedSpace)}");
// เปอร์เซ็นต์พื้นที่ว่าง
double percentFree = (double)freeSpace / totalSpace * 100;
Console.WriteLine($"Free Space: {percentFree:F2}%");
}
static string FormatBytes(long bytes) {
string[] suffixes = { "B", "KB", "MB", "GB", "TB" };
int i = 0;
double value = bytes;
while (value >= 1024 && i < suffixes.Length - 1) {
value /= 1024;
i++;
}
return $"{value:F2} {suffixes[i]}";
}
}
ผลลัพธ์ตัวอย่าง
Drive: E:\
Volume Label: Data
File System: NTFS
Drive Type: Fixed
Free Space: 125.45 GB
Total Space: 465.76 GB
Used Space: 340.31 GB
Free Space: 26.93%
คุณสมบัติหลักของ DriveInfo
| Property | คำอธิบาย |
|---|---|
| AvailableFreeSpace | พื้นที่ว่างที่ผู้ใช้ปัจจุบันเข้าถึงได้ (bytes) |
| TotalFreeSpace | พื้นที่ว่างทั้งหมดของดิสก์ (bytes) |
| TotalSize | ขนาดดิสก์ทั้งหมด (bytes) |
| DriveFormat | ระบบไฟล์ (NTFS, FAT32, exFAT, etc.) |
| DriveType | ประเภท: Fixed, Removable, Network, CDRom, etc. |
| IsReady | พร้อมใช้งานหรือไม่ (สำคัญสำหรับ removable drives) |
ดูไดรฟ์ทั้งหมด
foreach (DriveInfo drive in DriveInfo.GetDrives()) {
if (drive.IsReady) {
Console.WriteLine($"{drive.Name} - Free: {FormatBytes(drive.AvailableFreeSpace)}");
}
}