2012-07-22 3 views
5

ライオンの空き容量を判断するために、情報を入手するパネルにAppleが使用しているものが分かっていますか?クイックルックでも「情報を見る」と同じスペースが表示されていなくても、Appleが報告しているのと同じ空きスペースを取得しようとしたコードはすべて失敗しています。これは、たくさんのファイルを削除して空き容量を読み込もうとした場合に発生します。私はstatfsのを使用する場合> NSURLVolumeAvailableCapacityKey iが42918273024バイトCocoa apisが空き容量が正しくないと報告していますが、どうすればよいですか?

を取得 - - > buffer.f_bsize *バッファ> NSFileSystemFreeSize私は42918273024バイト

私がNSURLを使用する場合の取得 - 私はNSFileManagerを使用する場合

Incorrect free space on Lion

.f_bfree私は43180417024バイトを取得する

statfsはクイックルックと同様の結果を得ますが、情報を取得するにはどうしたらいいですか?

+0

基本2と基本10の計算の違いがあります。私はリンゴがSLのストレージスペースシステム全体のベース10に変わったと思っていましたが、なぜそう遠くないのでしょうか?スワップ、キャッシュ、スクリーンショットのために若干異なるかもしれません –

+0

2つの間で変換する式は覚えていません。 –

+1

マウンテンライオンがあなたを助けるNSByteCountFormatterを追加しました。 https://developer.apple.com/library/mac///#/library/mac/documentation/Foundation/Reference/NSByteCountFormatter_Class/Reference/Reference.htmlを参照してください。 –

答えて

1

ローカルのTime Machineスナップショットのバックアップ結果が表示されている可能性があります。以下の引用は、次のアップルのサポート記事からです - OS X Lion: About Time Machine's "local snapshots" on portable Macs

OS Xのライオンではタイムマシンが 社内に変更または削除、作成したファイルのコピーを保持します「ローカル スナップショット」と呼ばれる新機能が含まれていますディスク。ローカルスナップショットは、外部の バックアップディスクまたはTime Capsuleから離れて誤ってファイルを削除した場合に、 に「セーフティネット」を与える通常のTime Machine バックアップ(外部ディスクまたはTime Capsuleに保存)を補完します。

記事を言って終了:

注:あなたはディスクユーティリティ、Finderの間で利用可能なスペース統計の違いに気づき、そして情報の検査官を得ることができます。これは、 であり、無視して構いません。 Finderは、 ローカルスナップショットが必要に応じてディスクスペースを引き渡すため、ローカルスナップショットを考慮せずに、利用可能なディスク上の 領域を表示します。

ローカルのTime Machineバックアップを削除することによって使用可能にできるスペースではなく、ディスク上の実際の空き領域の値をプログラムで調べてみたようです。私は、dfのようなコマンドラインツールがローカルのTime Machineバックアップを認識しているかどうかは疑いの余地があります。

0

これは実際のAPIではなく、回避策の1つですが、古いunixコマンドdf -Hでは、 'get info'パネルと同じ情報が得られます。ディスクの行を選択するだけです。出力を解析します。

dfプログラムには、他にも多くのオプションがあります。この特定のケースでは、-Hスイッチは、人間が判読可能な形式で数字を吐き出し、基数10のサイズを使用するようにプログラムに指示します。

アプリの中からコマンドラインを実行し、プログラム内の出力を取得する方法についてこちらをご覧ください:Execute a terminal command from a Cocoa app

を、私は両方のdfの基盤と取得情報パネルは可能性が高いと考えています同じこと。

関連する問題