Objective c 是否有一个好的用于文件系统事件/kqueue的objc库包装器,可以为我处理递归监视?
我想编写一个OSX(Snow Leopard)应用程序,在特定目录中的文件发生更改时接收通知,并希望访问已更改的特定文件的路径 我知道我可以使用Objective c 是否有一个好的用于文件系统事件/kqueue的objc库包装器,可以为我处理递归监视?,objective-c,filesystemwatcher,fsevents,kqueue,Objective C,Filesystemwatcher,Fsevents,Kqueue,我想编写一个OSX(Snow Leopard)应用程序,在特定目录中的文件发生更改时接收通知,并希望访问已更改的特定文件的路径 我知道我可以使用文件系统事件或kqueue来执行此操作。前者没有提供特定文件更改的详细信息(需要我创建一个正在监视的目录的快照,然后扫描它以找出更改的文件)。后者不支持递归监视(要求我递归地向父目录中的每个文件和目录添加监视) 我已经找到了一些库,它们可以为我处理快照/递归的乐趣,但是找不到任何库UKKQueue看起来像是低级kqueue东西的好包装器,但似乎不做递归。
文件系统事件
或kqueue
来执行此操作。前者没有提供特定文件更改的详细信息(需要我创建一个正在监视的目录的快照,然后扫描它以找出更改的文件)。后者不支持递归监视(要求我递归地向父目录中的每个文件和目录添加监视)
我已经找到了一些库,它们可以为我处理快照/递归的乐趣,但是找不到任何库UKKQueue
看起来像是低级kqueue
东西的好包装器,但似乎不做递归。与GTMFileSystemKQueue相同SCEvents
看起来像是文件系统事件的好包装,但似乎无法找到更改的特定文件
是否有一个库可以满足我的需要,并且适合于这些技术中的任何一种的objc项目?在我发现递归迭代objc中的目录是多么容易之后,我最终使用了它:
// 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:)];
}
我也像你一样使用GTMFileSystemKQueue。但我在TextEdit中更改了一个文件,我的应用程序中没有响应任何事件。你能给我一些建议吗?>OSX 10.7你可以使用:FSEvents。它还分派源文件路径。