재귀적 감시를 처리하는 파일 시스템 이벤트/kqueue용 좋은 objc 라이브러리 래퍼가 있습니까?

StackOverflow https://stackoverflow.com/questions/5987129

문제

특정 디렉터리 내의 파일이 변경되면 알림을 받는 OSX(Snow Leopard) 앱을 작성하고, 변경된 특정 파일의 경로에 액세스하고 싶습니다.

다음 중 하나를 사용하여 이 작업을 수행할 수 있다는 것을 알고 있습니다. File System Events 또는 kqueue.전자는 어떤 특정 파일이 변경되었는지에 대한 세부 정보를 제공하지 않습니다(내가 보고 있는 디렉터리의 스냅샷을 만든 다음 스캔하여 어떤 파일이 변경되었는지 알아내야 함).후자는 재귀적 감시를 지원하지 않습니다(상위 디렉터리 내의 모든 파일과 디렉터리에 감시를 재귀적으로 추가해야 함).

스냅샷/재귀 기능을 처리하는 라이브러리를 찾아봤지만 찾을 수 없습니다. UKKQueue 낮은 레벨에 딱 맞는 래퍼인 것 같습니다 kqueue 하지만 재귀를 수행하지 않는 것 같습니다.동일 GTMFileSystemKQueue. SCEvents 좋은 포장지인 것 같아요 File System Events 하지만 변경된 특정 파일을 찾는 것을 처리하지 못하는 것 같습니다.

내가 원하는 것을 수행하고 이러한 기술 중 하나에 대한 objc 프로젝트에 적합한 라이브러리가 있습니까?

도움이 되었습니까?

해결책

i는 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:)];
}
.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top