デバイスの空き容量を取得する
デバイスの空き容量を知りたく検索すると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。こっちのほうがシンプル。