使用 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# 计算的可用磁盘空间与我的电脑中显示的值不匹配的主要内容,如果未能解决你的问题,请参考以下文章
我往电脑桌面下东西,可是提示没有足够的可用磁盘空间。怎么才能删除磁盘空间里不想要的??