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

时间:2011-02-26 00:52:42

标签: ios ios4 xamarin.ios

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

谢谢, 瑞克

3 个答案:

答案 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;