Rick
Rick

Reputation: 483

Device free space and sandbox space used

I'm trying to get the free space on the device and the amount of space my sandbox is using. Any thoughts?

Thanks, Rick

Upvotes: 5

Views: 2827

Answers (3)

jmgomez
jmgomez

Reputation: 742

This is the direct translate from @phix23 to MonoTouch (Sorry for the length of the lines, cocoa is too verbose):

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

Upvotes: 0

Danny
Danny

Reputation: 31

this is close, but not perfect.

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);

Upvotes: 0

Felix
Felix

Reputation: 35384

In Objective-C you can get the available file system space with 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];

To get the amount of space your app is using read this question: Calculate the size of a folder

Upvotes: 6

Related Questions