0

我使用以下方法使用 DriveInfo 类计算可用磁盘空间。但它与我的电脑中显示的可用磁盘空间值不匹配。以下方法返回 106 GB 的可用空间,而 MyComputer 仅显示 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;
    }
4

1 回答 1

1

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

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

所以我认为这就是差异的来源。

于 2016-07-10T14:38:47.997 回答