5

特定のディレクトリ内のファイルが変更されたときに通知を受け取る OSX (Snow Leopard) アプリを作成し、変更された特定のファイルのパスにアクセスしたいと考えています。

File System Eventsまたは のいずれかを使用してこれを実行できることはわかっていますkqueue。前者は、変更された特定のファイルの詳細を提供しません (監視しているディレクトリのスナップショットを作成し、それをスキャンして変更されたファイルを見つける必要があります)。後者は再帰的な監視をサポートしていません (親ディレクトリ内のすべてのファイルとディレクトリに監視を再帰的に追加する必要があります)。

スナップショット/再帰の楽しみを処理するライブラリを探しましたが、見つかりません。UKKQueue低レベルのkqueueものの良いラッパーのように見えますが、再帰を行うようには見えません。についても同じですGTMFileSystemKQueueSCEventsの良いラッパーのFile System Eventsように見えますが、変更された特定のファイルを見つけることを処理していないようです。

私が望むことを行い、これらのテクノロジのいずれかの objc プロジェクトに適したライブラリはありますか?

4

1 に答える 1

0

GTMFileSystemKQueueobjcのディレクトリを再帰的に反復するのがいかに簡単かを知った後、私は使用することになりました:

// Create a directory enumerator for the given top level directory
NSDirectoryEnumerator *de = [[NSFileManager defaultManager] enumeratorAtPath:dir];

// Add a kqueue on every file and folder below the top level
NSString *file;
while ((file = [de nextObject])) {
    [[GTMFileSystemKQueue alloc] initWithPath:[dir stringByAppendingString:file]
                                    forEvents:kGTMFileSystemKQueueAllEvents
                                acrossReplace:YES
                                       target:self
                                       action:@selector(fileSystemKQueue:events:)];
}
于 2011-05-17T01:17:14.910 に答える