Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> C#

Lấy dung lượng trống ổ đĩa trong C#


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 IsReady trướ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, AvailableFreeSpace có thể nhỏ hơn TotalFreeSpace.
  • Có thể dùng DriveInfo.GetDrives() để kiểm tra tất cả ổ đĩa.