Giới thiệu
Lớp DriveInfo cung cấp hai thuộc tính quan trọng để kiểm tra dung lượng trống:
AvailableFreeSpace: Dung lượng trống có sẵn cho người dùng hiện tại (có thể bị giới hạn bởi quota).TotalFreeSpace: Tổng dung lượng trống trên ổ đĩa (không tính quota).
Cả hai trả về giá trị kiểu long tính bằng byte.
Ví dụ cơ bản
DriveInfo dInfo = new DriveInfo("D");
Console.WriteLine(dInfo.AvailableFreeSpace);
Console.WriteLine(dInfo.TotalFreeSpace);
Ví dụ hoàn chỉnh
using System;
using System.IO;
public class Demo
{
public static void Main()
{
DriveInfo dInfo = new DriveInfo("D");
if (dInfo.IsReady)
{
Console.WriteLine("Available Free Space: " + FormatBytes(dInfo.AvailableFreeSpace));
Console.WriteLine("Total Free Space: " + FormatBytes(dInfo.TotalFreeSpace));
Console.WriteLine("Total Size: " + FormatBytes(dInfo.TotalSize));
}
}
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]}";
}
}
Kết quả mẫu
Available Free Space: 672.54 GB Total Free Space: 672.54 GB Total Size: 931.51 GB
Lưu ý quan trọng
- Luôn kiểm tra
IsReadytrước khi đọc dung lượng. - Giá trị trả về là byte, cần chuyển đổi sang KB/MB/GB để dễ đọc.
- Trên hệ thống có quota,
AvailableFreeSpacecó thể nhỏ hơnTotalFreeSpace. - Có thể dùng
DriveInfo.GetDrives()để kiểm tra tất cả ổ đĩa.