У меня есть приложение OSX, которое использует NSDocument и autosaves inplace - все работает хорошо. Иногда пользователь сохраняет документ в папку с синхронизацией Dropbox, и есть вероятность, что документ будет обновлен (через Dropbox), пока он все еще будет открыт в приложении. Вопрос в том, как я это обнаружить и загрузить документ с диска (или, по крайней мере, информировать пользователя.)Обнаружение перезаписанного файла с использованием NSDocument
Благодарности
Я не использовал 'NSDocument', поэтому для этого может быть встроенный метод, однако если бы я не предложил использовать дескриптор файла GCD для мониторинга файла для изменений. –
FSEvents - это API, используемый для просмотра изменений файлов. –
@GradyPlayer: FSEvents - это API, используемый для просмотра изменений * каталога *. Затем вам нужно будет найти, какие файлы (ы) изменили сами. Использование kevent (завернутое в CFFileDescriptor или, возможно, GCD) позволит вам контролировать один файл. Недостатком является то, что вы подверглись бы ограничению дескриптора файла - если бы пользователь открыл, скажем, 200 файлов, вы не смогли бы просмотреть их все и могли бы начать бросать ошибки. –