是否有可能跟踪Eclipse中的资源只读属性?

问题描述:

我现在正在使用eclipse资源并感兴趣是否可以处理文件只读属性更改?例如,用户在应用程序之外更改文件只读属性,然后我可以在我的应用程序中处理此属性更改事件。是否有可能跟踪Eclipse中的资源只读属性?

我不这么认为,它可以自动完成,因为Eclipse资源不会随时与文件系统同步。更具体地说,文件更改不会直接在Eclipse资源中触发事件。仅在读取资源时刷新文件。

也许如果你不断刷新,这将是可能的,但这可能会有相当的开销。刷新后,可以监听资源的变化 - 这就是构建器和资源监听器的用途。

比佐尔坦的答案更准确:

不,这是不可能直接做到这一点。但是,可以定期刷新工作空间并查找您感兴趣的更改。

  1. 创建并计划每XXX秒运行一次的作业。该作业将运行IProject.refreshLocal(IResource.DEPTH_INFINITE,null)。运行此操作后,它将重新安排自己在另一个XXX秒内运行。
  2. 添加监听你有兴趣变化的IResourceChangeListener。

现在,如果只读的变化从工作区中发生的,你会不会做#1,#2(资源更改侦听器)将自动运行。

+0

感谢您的回答,但我试图去做。通过使用IResourceChangeListener来跟踪只读属性更改是不可能的。 – deephace 2011-03-04 22:02:54

+0

嗯......你可能是对的。道歉误导你。它看起来像是各种变化的位标志,除了只读状态。 – 2011-03-05 03:55:14