2

更新:这个问题不会出现在我测试过的 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 是未知的,驱动器格式是 unixfs,如果有帮助的话。

不知道我是否遗漏了有关 Mac 计算机上文件结构的明显内容,也许?

编辑:我有一个 500go 的 SATA 硬盘,分为两个分区。它不应该给我2个驱动器吗?

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

我究竟做错了什么?

4

1 回答 1

2

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

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

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

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

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

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

于 2014-06-19T18:56:41.360 回答