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

Posted

技术标签:

【中文标题】使用 C# 计算的可用磁盘空间与我的电脑中显示的值不匹配【英文标题】:Free disk space calculated using C# doesn't match the value shown in My Computer 【发布时间】:2016-11-12 13:49:56 【问题描述】:

我使用以下方法使用 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;
    

【问题讨论】:

您可能还想显示用于计算长到千兆字节的代码。另外,你有没有考虑过如果你有多个磁盘会发生什么? 【参考方案1】:

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

这解释了所有的区别: 106 * 1000 * 1000 * 1000 ~= 98.8 * 1024 * 1024 * 1024。

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

【讨论】:

以上是关于使用 C# 计算的可用磁盘空间与我的电脑中显示的值不匹配的主要内容,如果未能解决你的问题,请参考以下文章

电脑显示磁盘空间不足是啥意思

我往电脑桌面下东西,可是提示没有足够的可用磁盘空间。怎么才能删除磁盘空间里不想要的??

win10系统硬盘怎么分区 显示磁盘空间不足

如何更改分区排序?(严重性)

把移动硬盘复制到电脑上为啥显示没有足够的空间,电脑上的可用空间是19G,移动硬盘13G

如何在 Bash 中获取当前的可用磁盘空间?