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

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

谢谢,里克

在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太冗长):

 var docDir = NSSearchPath.GetDirectories(NSSearchPathDirectory.DocumentDirectory,NSSearchPathDomain.User, true)[0]; var freeSpace = NSFileManager.DefaultManager.GetFileSystemAttributes(docDir).FreeSize;