Эквивалент FileSystemWatcher (.NET) в какао
-
21-08-2019 - |
Вопрос
Я разрабатываю приложение в Какао.Я хочу постоянно проверять, изменено ли содержимое файла в определенном месте или нет (например, FileSystemWatcher
в .NET).Пожалуйста, дайте мне решение
Решение
Пожалуйста, взгляните на ФСЕвенты.
Другие советы
Как говорит Дидерик, ФСЕвенты — это API Carbon от Apple для прослушивания событий файловой системы.Кто-то создал оболочку Cocoa/Objective-C для FSEvents под названием SCEСобытия это немного проще в использовании.
Другой вариант — пить прямо из пожарного шланга /dev/fsevents.Я работаю над приложением, которое делает именно это, и оно работает очень хорошо.Вы можете получать уведомления, если файл изменяется, удаляется, перемещается, изменяются его атрибуты и т. д.Конечно, это не вариант «Какао», поскольку в основном это код C, но мы используем его в приложении Какао.
FSEvents — это здорово, но они используются для мониторинга папок.Чтобы отслеживать один файл, вам нужно проверить kqueues.Попробуйте «man kqueue» в терминале.
Посмотрите документацию класса NSWorkspace.
Вот пример того, как это сделать с помощью закладок и NSFileManager, чтобы вы могли следить за файлом, если он был перемещен.
Еще один ресурс по kqueues: http://developer.apple.com/documentation/Darwin/Conceptual/FSEvents_ProgGuide/KernelQueues/KernelQueues.html