5

AppleがLionの空き容量を決定するための[情報を見る]パネルに使用しているAPIを知っている人はいますか?Appleが報告しているのと同じAvailableSpaceを取得しようとしたすべてのコードが失敗し、QuickLookでもGetInfoが表示するのと同じスペースが表示されません。これは、大量のファイルを削除して、使用可能なスペースを読み取ろうとすると発生するようです。

ライオンの空き容量が正しくありません

NSFileManager-> NSFileSystemFreeSizeを使用すると、42918273024バイトになります

NSURL-> NSURLVolumeAvailableCapacityKeyを使用すると、42918273024バイトになります

statfs-> buffer.f_bsize * buffer.f_bfreeを使用すると、43180417024バイトになります

statfsはクイックルックと同様の結果を取得しますが、Get Infoと一致させるにはどうすればよいですか?

4

2 に答える 2

1

おそらく、ローカルのTimeMachineスナップショットバックアップの結果が表示されています。以下の引用は、次のAppleサポート記事-OS X Lionからのものです:ポータブルMacでのTime Machineの「ローカルスナップショット」について

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

記事は次のように言って終了します。

注:ディスクユーティリティ、ファインダー、および情報取得インスペクター間で使用可能なスペース統計に違いがあることに気付く場合があります。これは予想されることであり、無視しても問題ありません。ローカルスナップショットは必要に応じてディスク領域を放棄するため、Finderはローカルスナップショットを考慮せずにディスク上の使用可能な領域を表示します。

あなたが試した利用可能なディスクスペースを測定するすべてのプログラム的な方法は、ローカルのTime Machineバックアップを削除することによって利用可能にすることができるスペースではなく、ディスク上の真の空きスペースの値を与えるように見えます。のようなコマンドラインツールdfがローカルのTimeMachineバックアップを認識しているとは思えません。

于 2012-08-26T09:42:27.370 に答える
0

これは少し回避策であり、実際のAPIではありませんが、古き良きUNIXコマンドdf -Hを使用すると、「get info」パネルと同じ情報が得られます。ディスクの行を選択して、出力を解析するだけです。

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

アプリ内からコマンドラインを実行し、プログラム内で出力を取得する方法については、こちらをご覧ください。Cocoaアプリからターミナルコマンドを実行します。

両方の基盤とdf情報取得パネルは同じものである可能性が非常に高いと思います。

于 2012-08-26T09:37:59.270 に答える