Можно ли отслеживать ресурс только для чтения в Eclipse? - PullRequest
0 голосов
/ 03 марта 2011

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

Ответы [ 2 ]

4 голосов
/ 03 марта 2011

Не думаю, что это можно сделать автоматически, поскольку ресурсы Eclipse не синхронизируются все время с файловой системой.В частности, изменения файлов не вызывают события в ресурсах Eclipse напрямую.Файлы обновляются только при чтении ресурсов.

Возможно, если вы постоянно обновляете, это было бы возможно, но это может привести к дополнительным расходам.После обновления можно прослушивать изменения в ресурсах - вот для чего нужны Builders и прослушиватели ресурсов.

2 голосов
/ 04 марта 2011

Точнее, чем ответ Золтана:

Нет, это невозможно сделать напрямую. Однако можно периодически обновлять рабочее пространство и искать изменения, которые вас интересуют.

  1. Создайте и запланируйте задание, которое выполняется каждые XXX секунд. Это задание будет запускать IProject.refreshLocal (IResource.DEPTH_INFINITE, null). После выполнения этой операции он будет перепланирован на выполнение еще через XXX секунд.
  2. Добавьте IResourceChangeListener, который прослушивает интересующие вас изменения.

Теперь, если изменения только для чтения происходят изнутри рабочей области, вам не нужно делать # 1, а # 2 (слушатель изменения ресурса) будет запускаться автоматически.

...