使用 C# 计算的可用磁盘空间与“我的电脑”中显示的值不匹配

本文关键字:我的电脑 电脑 显示 不匹配 我的 计算 磁盘 使用 空间 | 更新日期: 2023-09-27 17:56:25

我使用以下方法使用DriveInfo类计算可用磁盘空间。但它与"我的电脑"中显示的可用磁盘空间值不匹配。以下方法返回 106 GB 的可用空间,而"我的计算机"仅显示 98.8 GB 的可用空间。如何计算准确值?为什么会有区别?

public long GetTotalFreeSpace(string driveName)
    {
        foreach (DriveInfo drive in DriveInfo.GetDrives())
        {
            if (drive.IsReady && drive.Name == driveName)
            {
                return drive.TotalFreeSpace;
            }
        }
        return -1;
    }

使用 C# 计算的可用磁盘空间与“我的电脑”中显示的值不匹配

有两种约定:一种是 1 kB = 1000 字节,另一种是 1 kB = 1024 字节。第二个也称为 kibibyte。

这解释了所有差异:
106 * 1000 * 1000 * 1000 ~= 98.8 * 1024 * 1024 * 1024

所以我认为这就是区别的来源。