我正在尝试获取设备上的可用空间以及我的沙箱使用的空间量。有什么想法吗?
谢谢, 瑞克
答案 0 :(得分:6)
在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];
要获取您的应用使用的空间量,请阅读以下问题: Calculate the size of a folder
答案 1 :(得分:0)
这很接近,但并不完美。
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);
答案 2 :(得分:0)
这是从@ phix23到MonoTouch的直接翻译(对不起行长,可可太冗长):
var docDir = NSSearchPath.GetDirectories(NSSearchPathDirectory.DocumentDirectory,NSSearchPathDomain.User, true)[0];
var freeSpace = NSFileManager.DefaultManager.GetFileSystemAttributes(docDir).FreeSize;