質問

ここでの文書化されているMac File System Events APIを使用して、C ++で簡単なファイルシステムウォッチャーを作成しました。 Apple Developer Doc 。私の質問はタイトルにあります。変更されたものの道を入手するにはどうすればいいですか? EventPaths配列は、私が本質的に見ている親ディレクトリのパス(またはそのセット)のみを与えます。しかし、修正された基礎となるディレクトリエントリではありません。

コールバック、すなわち。:

   static void mycallback(
            ConstFSEventStreamRef streamRef,
            void *clientCallBackInfo,
            size_t numEvents,
            void *eventPaths,
            const FSEventStreamEventFlags eventFlags[],
            const FSEventStreamEventId eventIds[])
.

おそらくこれらの項目の1つから抽出できると考えていますか?

編集:

たとえば、ファイルが作成されたファイルが作成されていることがわかります。

KfSeventStreamEventFlagitemcreated

が上げられています。しかし、その項目の実際の名前を取得することについてどうすればよいですか。 (アイテムが削除されたときなど、他のイベントのように)。

編集2:

私は私が欲しいものをすることができないと思います。 FS Techの概要

「取るべき重要なポイントは、通知の粒度がディレクトリレベルにあることです。ディレクトリ内の何かが変更されたが、何が変わったのかを教えてはいけません。」

AKA。バグ。

歓声、

ベン。

役に立ちましたか?

解決

実際には、これは可能ですが、10.7以降のみです。fsEventStreamCreateFlagFileEventsフラグ(docs こちら

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top