デバイスの空き容量を取得する

デバイスの空き容量を知りたく検索するとObjective-CのものはたくさんひっかかるがXamarin.iOSのものは見つけられず。
P/Invokeなコードを書かなければならないのか(汗)と思っていたらちゃんとクラスがありました。

エラー処理等を考慮しないでCSなコードにコンバートするとこんな感じに。

using Foundation;

string[] aa = NSSearchPath.GetDirectories(NSSearchPathDirectory.DocumentDirectory, NSSearchPathDomain.User, true);
NSFileSystemAttributes ab = NSFileManager.DefaultManager.GetFileSystemAttributes(aa[aa.Length - 1]);
System.Console.WriteLine(string.Format("{0}", ab.FreeSize));  // 空き容量。設定.app->一般->情報->使用可能 の値とほぼいっしょ
System.Console.WriteLine(string.Format("{0}", ab.Size));  // 総容量。設定.app->一般->情報->容量 の値とほぼいっしょ

でもNSSearchPath.GetDirectoriesの部分はEnvironment.GetFolderPathで置き換えられるので

using Foundation;

NSFileSystemAttributes ab = NSFileManager.DefaultManager.GetFileSystemAttributes(Environment.GetFolderPath(Environment.SpecialFolder.Personal));
System.Console.WriteLine(string.Format("{0}", ab.FreeSize));  // 空き容量。
System.Console.WriteLine(string.Format("{0}", ab.Size));  // 総容量。

でもOK。こっちのほうがシンプル。