Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Objective c 是否有一个好的用于文件系统事件/kqueue的objc库包装器,可以为我处理递归监视?_Objective C_Filesystemwatcher_Fsevents_Kqueue - Fatal编程技术网

Objective c 是否有一个好的用于文件系统事件/kqueue的objc库包装器,可以为我处理递归监视?

Objective c 是否有一个好的用于文件系统事件/kqueue的objc库包装器,可以为我处理递归监视?,objective-c,filesystemwatcher,fsevents,kqueue,Objective C,Filesystemwatcher,Fsevents,Kqueue,我想编写一个OSX(Snow Leopard)应用程序,在特定目录中的文件发生更改时接收通知,并希望访问已更改的特定文件的路径 我知道我可以使用文件系统事件或kqueue来执行此操作。前者没有提供特定文件更改的详细信息(需要我创建一个正在监视的目录的快照,然后扫描它以找出更改的文件)。后者不支持递归监视(要求我递归地向父目录中的每个文件和目录添加监视) 我已经找到了一些库,它们可以为我处理快照/递归的乐趣,但是找不到任何库UKKQueue看起来像是低级kqueue东西的好包装器,但似乎不做递归。

我想编写一个OSX(Snow Leopard)应用程序,在特定目录中的文件发生更改时接收通知,并希望访问已更改的特定文件的路径

我知道我可以使用
文件系统事件
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。它还分派源文件路径。