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

本文关键字:磁盘 空间 错误 IO DriveInfo 返回 System | 更新日期: 2023-09-27 18:08:48

更新:这个问题没有出现在我测试过的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的值,这没有意义。此外,驱动器类型为Unknown,驱动器格式为unix,如果有帮助的话。

不知道我是否错过了一些关于Mac电脑文件结构的明显的东西,也许?

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

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

我做错了什么?

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

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

http://unity3d.com/unity/faq部分- 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上可用的磁盘空间之外,几乎没有什么可做的。