【问题标题】:System.IO.DriveInfo returns wrong disk space valuesSystem.IO.DriveInfo 返回错误的磁盘空间值
【发布时间】:2014-08-06 18:35:18
【问题描述】:

更新:我测试过的 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 或类似版本上报告的错误无关。

我做错了什么?

【问题讨论】:

  • 不是重复的,另一个问题是寻找我的问题的替代解决方案,因为上面使用的方法不适合我。这个问题是一个更新,显示了经过更多测试后我使用此方法遇到的确切问题。我认为这是更具体的问题,而不是完全相同的问题,因此我提出了另一个问题。

标签: c# macos unity3d diskspace driveinfo


【解决方案1】:

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

【讨论】:

  • 会将其标记为正确,但如果我可能错了,请随时发布您自己的答案,或添加到此答案中。
猜你喜欢
  • 1970-01-01
  • 2023-04-01
  • 2012-11-15
  • 1970-01-01
  • 2016-03-14
  • 1970-01-01
  • 2018-07-06
  • 2019-11-17
  • 2020-07-12
相关资源
最近更新 更多