使用设备可用空间和沙箱空间
我正在尝试获取设备上的可用空间以及我的沙箱使用的空间量。 有什么想法吗?
谢谢,里克
在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;