ここに記載されているように、mac File System Events APIを使用して、C++で単純なファイルシステムウォッチャーを作成しました:appledeveloperdoc。私の質問はタイトルにあります。変更されたもののパスを取得するにはどうすればよいですか?eventPaths配列は、私が本質的に監視している親ディレクトリ(またはそのセット)のパスのみを提供します。ただし、変更された基になるディレクトリエントリではありません。
コールバックを使用して有用な情報を取得できます。
static void mycallback(
ConstFSEventStreamRef streamRef,
void *clientCallBackInfo,
size_t numEvents,
void *eventPaths,
const FSEventStreamEventFlags eventFlags[],
const FSEventStreamEventId eventIds[])
たぶん、これらのアイテムの1つから名前を抽出できると思いますか?
編集:
たとえば、ファイルが作成されていることに気付く場合があります。その場合、
kFSEventStreamEventFlagItemCreated
上げられます。しかし、そのアイテムの実際の名前を取得するにはどうすればよいですか?(同様に、アイテムが削除されたときなどの他のイベントの場合)。
編集2:
やりたいことができないと思い始めています。FS技術の概要から:
「重要なポイントは、通知の粒度がディレクトリレベルにあることです。ディレクトリ内の何かが変更されたことだけが通知され、何が変更されたかは通知されません。」
別名。バガー。
乾杯、
ベン。