更新:此问题并未出现在我测试过的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或类似版本上报告的错误有关。
我做错了什么?
答案 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上可用磁盘空间的方法之外,几乎没什么可做的。