Mac OS X Как программно определить, используется ли измененный файл тем же процессом, который его изменил? - PullRequest
3 голосов
/ 17 ноября 2011

Я исследую проблему с разработанной нами утилитой.Мы отслеживаем файл или каталог, и после внесения изменений мы загружаем новую версию в центральный репозиторий.Наша утилита похожа на dropbox в том, что вы можете отслеживать изменения, но это гораздо больше трекер версий, чем утилита синхронизации.

Мы можем определить, когда файл был изменен.Но мы хотели бы иметь возможность определить, использует ли процесс, который внес изменения, «использование» его… из-за отсутствия лучшего термина.

Проблема возникает, когда пользователь открывает файл в какой-либо программе и периодически нажимает кнопку Сохранить.Или, что еще хуже, функция автосохранения сохраняет текущую работу каждые пару минут.Мы хотим иметь возможность обнаруживать это и сохранять только при необходимости, например, когда пользователь наконец-то сохраняет и закрывает файл.Если программа с автосохранением открыта всю ночь, мы получаем сотни бесполезных версий одного и того же файла.

  1. Можно ли определить, какой процесс сохранил файл?
  2. Можно ли определить, все еще ли этот процесс «использует» этот файл.

Это было просто в Windows, но в Mac оказалось чрезвычайно сложным.Кроме того, мы являемся разработчиками Windows и IOS и не очень разбираемся в OS X, особенно когда он работает на Linux.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...