我正在使用ac#程序查看硬盘上仍有多少GB空闲(总大小1 TB,免费大小110 GB (确切地说,根据驱动器属性)在Windows资源管理器中:根据Windows的118.333.329.408字节)。
我的问题是我得到的结果是.....关闭。
10,135,252,992 字节根据 C#方法我在下面使用.....但根据Windows 110! GB是免费的。
注意:我在这里谈论Windows Server
,驱动器是D驱动器。因此没有交换文件,也没有隐藏的系统文件(至少不超过任何非系统驱动器,因为系统驱动器是C驱动器)。
public long GetTotalFreeSpace(string driveName)
{
foreach (DriveInfo drive in DriveInfo.GetDrives())
{
if (drive.IsReady && drive.Name == driveName)
{
return drive.TotalFreeSpace;
}
}
return -1;
}
我的问题是这是怎样的以及如何纠正它?
答案 0 :(得分:8)
在幕后,System.IO.DriveInfo assembly似乎使用了Windows API中的GetDiskFreeSpaceEx function。
标准版GetDiskFreeSpace
和GetDiskFreeSpaceEx
之间的区别归结为:
<强> GetDiskFreeSpace 强>:
GetDiskFreeSpace功能 检索有关指定磁盘的信息,包括磁盘上的可用空间量。
<强> GetDiskFreeSpaceEx 强>:
GetDiskFreeSpaceEx函数 检索有关磁盘卷上可用空间量的信息,即空间总量,可用空间总量以及与调用线程关联的用户可用空间总量。 / p>
最有可能的是,您在当前用户可用的空间上达到了一些配额。