[解決済み] iPhone/iPadのディスクの空き容量を確認する方法を教えてください。
2022-04-28 16:30:11
質問
iPhone/iPadデバイスのディスクの空き容量をプログラムで検出する、より良い方法を探しています。
現在、私はNSFileManagerを使用してディスクスペースを検出しています。以下は、私のために仕事をするコードのスニペットです。
-(unsigned)getFreeDiskspacePrivate {
NSDictionary *atDict = [[NSFileManager defaultManager] attributesOfFileSystemForPath:@"/" error:NULL];
unsigned freeSpace = [[atDict objectForKey:NSFileSystemFreeSize] unsignedIntValue];
NSLog(@"%s - Free Diskspace: %u bytes - %u MiB", __PRETTY_FUNCTION__, freeSpace, (freeSpace/1024)/1024);
return freeSpace;
}
上記のスニペットで正しいですか?または、使用可能な/無料のディスクスペースの合計を知るためのより良い方法があります。
ディスクの空き容量が少ない場合に、アプリケーションが同期を実行しないようにする必要があるため、ディスクの空き容量の合計を検出する必要があります。
どのように解決するのですか?
アップデイト
: この回答からかなりの時間が経過し、新しいメソッド/APIが追加されたため、Swiftなどについては以下の更新された回答を確認してください。
オリジナルの回答
:
私は以下の解決策でうまくいくことがわかりました。
-(uint64_t)getFreeDiskspace {
uint64_t totalSpace = 0;
uint64_t totalFreeSpace = 0;
NSError *error = nil;
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSDictionary *dictionary = [[NSFileManager defaultManager] attributesOfFileSystemForPath:[paths lastObject] error: &error];
if (dictionary) {
NSNumber *fileSystemSizeInBytes = [dictionary objectForKey: NSFileSystemSize];
NSNumber *freeFileSystemSizeInBytes = [dictionary objectForKey:NSFileSystemFreeSize];
totalSpace = [fileSystemSizeInBytes unsignedLongLongValue];
totalFreeSpace = [freeFileSystemSizeInBytes unsignedLongLongValue];
NSLog(@"Memory Capacity of %llu MiB with %llu MiB Free memory available.", ((totalSpace/1024ll)/1024ll), ((totalFreeSpace/1024ll)/1024ll));
} else {
NSLog(@"Error Obtaining System Memory Info: Domain = %@, Code = %ld", [error domain], (long)[error code]);
}
return totalFreeSpace;
}
デバイスがマシンに接続されているときにiTunesが表示するサイズと全く同じものを返してくれるのです。
関連
-
[解決済み] iPhoneが使用できません。デバイスを再接続してください
-
[解決済み] UITextViewのキーボードをリターンキーで解除するには?
-
[解決済み】デバイスがiPhone Xであるかどうかを検出します。
-
[解決済み】JavaでコンピュータのCPU、メモリ、ディスクの使用状況を監視するには?
-
[解決済み] iPhoneのシミュレータに.ipaファイルをインストールする方法は?
-
[解決済み] アプリのプッシュ通知設定をリセットする
-
[解決済み] UITableViewのセクション間のスペースを小さくする
-
[解決済み] viewWillAppear:と-viewDidAppear:の違いは何ですか?
-
[解決済み] iPhoneのSafariで<body>に適用したoverflow:hiddenは機能するのか?
-
[解決済み] CALayer setNeedsDisplayInRect:] の暗黙のアニメーションを無効にする。
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] UINavigationControllerに右ボタンを追加する方法は?
-
[解決済み] APNSの.pemファイルを作成する?
-
[解決済み] iphone Core Data 保存時に未解決のエラーが発生する。
-
[解決済み] iOS UITableViewのHeaderView(セクションヘッダーではない)を追加する
-
[解決済み] レビュー待ちの状態でバイナリを拒否する(バイナリ拒否ボタンが見つからない)
-
[解決済み] UIViewControllerの上にclearColor UIViewControllerを表示する
-
[解決済み] Objective-C 2.0でメソッドに非推奨のフラグを立てるにはどうすればよいですか?
-
[解決済み] 空のUITableViewを処理する。フレンドリーなメッセージを表示する
-
[解決済み] Objective-C用JSONパーサーの比較(JSON Framework、YAJL、TouchJSON、etc.)
-
[解決済み] position: iPadとiPhoneで固定が効かない。