Как узнать, соответствует ли событие FSEvents новому файлу, все еще записываемому в - PullRequest
1 голос
/ 30 октября 2019

В моем приложении резервного копирования я наблюдаю за изменениями в выбранном пользователем каталоге A и зеркалирую все изменения файла в другом каталоге B. Похоже, единственная проблема: как мне узнать, был ли файл создан и все еще записываетсянапример, когда приложение создает очень большой файл или Finder копирует файл?

Я хотел бы игнорировать это событие, потому что последует другое событие, соответствующее моменту, когда операция записи завершилась, и онопочти наверняка безопасно скопировать файл из A в B (запуск копии во время записи исходного файла обычно приводит к ошибке). Я попытался проанализировать флаги, переданные обратному вызову FSEvents, но кажется, что разные приложения вызывают разные флаги (например, команды cp и touch, копия, инициированная в Finder, создание файла из TextEdit и Word, все приводит кразные флаги).

...