System.IO.DriveInfo返回错误的磁盘空间值

时间:2014-06-16 20:58:53

标签: c# macos unity3d diskspace driveinfo

更新:此问题并未出现在我测试过的Android设备上。它返回了良好的价值。非常感谢有关此事的任何指示。

我无法从Mac台式计算机获取正确的AvailableFreeSpace值。我正在使用Unity3D C#,并使用以下代码:

DriveInfo[] drives = DriveInfo.GetDrives();

foreach(DriveInfo drive in drives)
{
    if (drive.IsReady)
    {
        Debug.Log(drive.Name);
        Debug.Log(drive.AvailableFreeSpace);
        Debug.Log(drive.TotalFreeSpace);
        Debug.Log(drive.TotalSize);
    }
}

我的结果有点奇怪。我只得到一个驱动器:我得到的名字是" /",而且这些值是错误的。 AvailableFreeSpace返回的值高于TotalSize,这没有任何意义。此外,DriveType为Unknown,驱动器格式为unixfs,如果有帮助的话。

不知道我是否在Mac电脑上遗漏了一些关于文件结构的明显内容,可能吗?

编辑:我有一台SATA硬盘500GB分为两个分区。难道它不能给我2个驱动器吗?

EDIT2:我的Monodevelop版本是4.0.1,所以我不认为这与多年前在版本2.10.0或类似版本上报告的错误有关。

我做错了什么?

1 个答案:

答案 0 :(得分:2)

发布到另一个论坛,显然这是一个Mono / Unity错误。最新版本的Unity使用旧的Mono(编译器,而不是MonoDevelop(文本编辑器)):

http://unity3d.com/unity/faq#section-445

在Mono(2.10)的更高版本中修复了返回错误值的错误,并且在Mono 3.0版中修复了另一个有关DriveInfo的错误:

http://www.mono-project.com/Release_Notes_Mono_2.10

http://www.mono-project.com/Release_Notes_Mono_3.0

除了找到另一种获取Mac上可用磁盘空间的方法之外,几乎没什么可做的。