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

标签 c# macos unity-game-engine diskspace driveinfo

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

我无法从我的 Mac 台式计算机获取正确的可用空闲空间值。我正在使用 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 计算机上文件结构的一些明显信息?

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

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

我做错了什么?

最佳答案

发布到另一个论坛,显然这是一个 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 上的可用磁盘空间之外,几乎没有什么可做的。

关于c# - System.IO.DriveInfo 返回错误的磁盘空间值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24252100/

相关文章:

Java 通用 GetComponent 方法

unity-game-engine - 在 Unity 3D 中使用 PUN2 进行 VR 多人游戏体验时出现问题

c# - LINQ 从集合中选择

c# - WPF 中的图像处理不是线程安全的?

c# - 如何将新行放入 wpf TextBlock 控件中?

macos - 以管理员权限执行 shell 命令时,Applescript 应用程序在 10.9 上挂起

java - 关于如何创建 java web 服务并部署到 mac web 服务器的简单教程?

c++ - 如何在 Mac OS 的命令行中编译 Qt 代码

ios - Oculus 唇形同步 iOS 支持

c# - DomElement.click() 事件在 chrome 中不起作用,但其他事件可以