Ios 使用的设备可用空间和沙箱空间

Ios 使用的设备可用空间和沙箱空间,ios,ios4,xamarin.ios,Ios,Ios4,Xamarin.ios,我正在尝试获取设备上的可用空间以及沙箱使用的空间量。有什么想法吗 谢谢, Rick在Objective-C中,您可以使用NSFileManager获得可用的文件系统空间: NSFileManager* filemgr = [NSFileManager defaultManager]; NSArray* paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); NSString

我正在尝试获取设备上的可用空间以及沙箱使用的空间量。有什么想法吗

谢谢,
Rick

在Objective-C中,您可以使用NSFileManager获得可用的文件系统空间:

NSFileManager* filemgr = [NSFileManager defaultManager];

NSArray* paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *docDirectory = [paths objectAtIndex:0];            

NSDictionary* fsAttr = [filemgr attributesOfFileSystemForPath:docDirectory error:NULL];

unsigned long long freeSize = [(NSNumber*)[fsAttr objectForKey:NSFileSystemFreeSize] unsignedLongLongValue];
要获取应用程序正在使用的空间量,请阅读以下问题:
这很接近,但并不完美

NSFileManager a = NSFileManager.DefaultManager;
NSError _error;

string _databaseFolder = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.Personal), "..");
NSDictionary _b =  a.GetFileSystemAttributes(_databaseFolder,out _error);
NSObject _d =  NSObject.FromObject("NSFileSystemFreeSize");
NSObject _c =  _b.ObjectForKey(_d);

这是从@phix23到MonoTouch的直接转换(很抱歉,行的长度太长了,cocoa太冗长了):


仍在寻求帮助。。。我尝试过:NSFileManager.SystemFreeSize.Length,但得到了一些废话(20)和DriveInfo[]allDrives=DriveInfo.GetDrives();d、 可用空间;但这使应用程序崩溃,MonoTouch告诉我API不受支持。为什么在设备上获得自由空间如此之难???仍在寻找如何获得设备上总自由空间的答案-MonoTouch的任何更新?
var docDir = NSSearchPath.GetDirectories(NSSearchPathDirectory.DocumentDirectory,NSSearchPathDomain.User, true)[0];
var freeSpace = NSFileManager.DefaultManager.GetFileSystemAttributes(docDir).FreeSize;