ファイルが変更されたときのディレクトリ(約5レベルのサブディレクトリを持つ何千ものファイル)を監視したいとします。私はFSEvents APIを使ってディレクトリ内のファイルが変更されたときにそれを監視することができますが、どのファイルを変更したのかを判断する方法はわかりません。 This参考資料私は、バイナリツリーを構築し、イベントがトリガされるたびにツリーをトラバースすると、どのファイルが変更されたかを判断する最も良い方法はです。そうでない場合は、の方が良いでしょうか?の代替品ですか?ファイルの変更を監視するディレクトリ
ディレクトリを再帰的にスキャンしてkqueueをすべてのファイルに添付する方がよいですか?私はそれが何千ものファイルでうまくいくかどうか分かりません。
Jesse、NSFileCoordinator/NSFilePresenterを使用してこれまでのフォルダの監視を実装しようとしましたか?私はこのソリューションを機能させることができませんでした。単にイベントについて私に通知するわけではありません。 –
@DaveNewman NSFileCoordinatorは、変更を加えているプログラムがそれを使用している場合にのみ機能します。 (オプトインAPI)ほとんどのCocoaプログラムがこれを行います。おそらく、あなたは下位レベルのAPIによって行われている変更でしょうか? –
私は分かりません。たとえば、私のフォルダ用のファイルプレゼンター、例えば '/ Users/Dave/MyFolder'を作成しました。今度は、このディレクトリにファイルをドロップ(ドラッグアンドドロップ)すると、 'displayedSubitemDidChangeAtURL:'メソッドだけがシステムによって呼び出されますが、 'renderedSubitemDidAppearAtURL:'は呼び出されません。また、Finderでいくつかのファイルを削除すると、 'accommodPresentedSubitemDeletionAtURL'も呼び出されません。私は何かが欠けていたか? –