คลาส DriveInfo ใน namespace System.IO ให้ข้อมูลเกี่ยวกับไดรฟ์ต่างๆ ในระบบ เมธอดสแตติก GetDrives() คืนค่าอาร์เรย์ของออบเจกต์ DriveInfo แสดงถึงไดรฟ์ทั้งหมดที่ระบบปฏิบัติการตรวจพบ
รูปแบบการใช้งาน
DriveInfo[] drives = DriveInfo.GetDrives();
โค้ดตัวอย่าง: แสดงชื่อไดรฟ์ทั้งหมด
using System;
using System.IO;
public class Demo
{
public static void Main()
{
DriveInfo[] drives = DriveInfo.GetDrives();
Console.WriteLine("รายชื่อไดรฟ์ในระบบ:");
foreach (DriveInfo drive in drives)
{
Console.WriteLine($"ไดรฟ์: {drive.Name}");
// แสดงข้อมูลเพิ่มเติมหากไดรฟ์พร้อมใช้งาน
if (drive.IsReady)
{
Console.WriteLine($" รูปแบบ: {drive.DriveFormat}");
Console.WriteLine($" ขนาดทั้งหมด: {drive.TotalSize / (1024.0 * 1024 * 1024):F2} GB");
Console.WriteLine($" พื้นที่ว่าง: {drive.AvailableFreeSpace / (1024.0 * 1024 * 1024):F2} GB");
Console.WriteLine($" ประเภท: {drive.DriveType}");
}
else
{
Console.WriteLine(" (ไดรฟ์ไม่พร้อมใช้งาน)");
}
Console.WriteLine();
}
}
}
ผลลัพธ์ตัวอย่าง (Windows)
รายชื่อไดรฟ์ในระบบ:
ไดรฟ์: C:\
รูปแบบ: NTFS
ขนาดทั้งหมด: 476.94 GB
พื้นที่ว่าง: 120.45 GB
ประเภท: Fixed
ไดรฟ์: D:\
รูปแบบ: NTFS
ขนาดทั้งหมด: 931.51 GB
พื้นที่ว่าง: 500.12 GB
ประเภท: Fixed
ไดรฟ์: E:\
(ไดรฟ์ไม่พร้อมใช้งาน)
ผลลัพธ์ตัวอย่าง (Linux)
รายชื่อไดรฟ์ในระบบ:
ไดรฟ์: /
รูปแบบ: ext4
ขนาดทั้งหมด: 20.00 GB
พื้นที่ว่าง: 8.50 GB
ประเภท: Fixed
คุณสมบัติสำคัญของ DriveInfo
| คุณสมบัติ | คำอธิบาย |
|---|---|
Name | ชื่อไดรฟ์ (เช่น C:\, /) |
DriveType | ประเภท: Fixed, Removable, Network, CDRom, Ram, Unknown |
DriveFormat | ระบบไฟล์: NTFS, FAT32, exFAT, ext4, ฯลฯ |
IsReady | สถานะพร้อมใช้งาน |
TotalSize | ขนาดรวม (ไบต์) |
AvailableFreeSpace | พื้นที่ว่างสำหรับผู้ใช้ปัจจุบัน (ไบต์) |
TotalFreeSpace | พื้นที่ว่างทั้งหมด (ไบต์) |
VolumeLabel | ฉลากโวล्यุม |
RootDirectory | ไดเรกทอรีราก (DirectoryInfo) |
ข้อควรระวัง
- ต้องใช้
try-catchเนื่องจากอาจเกิดIOExceptionหรือUnauthorizedAccessException - ใน Linux/macOS จะรายงานเฉพาะ mount points ที่เข้าถึงได้
- ควรตรวจสอบ
IsReadyก่อนเข้าถึงคุณสมบัติอื่นๆ