Java 可以在Eclipse中跟踪资源只读属性吗?

Java 可以在Eclipse中跟踪资源只读属性吗?,java,eclipse,resources,eclipse-plugin,eclipse-rcp,Java,Eclipse,Resources,Eclipse Plugin,Eclipse Rcp,我现在正在使用eclipse资源,并对是否可以处理文件只读属性更改感兴趣?例如,用户在应用程序外部更改文件只读属性,然后我可以在我的应用程序中处理此属性更改事件。我认为,不可能自动执行此操作,因为Eclipse资源不会一直与文件系统同步。更具体地说,文件更改不会直接触发Eclipse资源中的事件。只有在读取资源时才会刷新文件 也许如果你不断地刷新,这是可能的,但这可能会有相当大的开销。刷新后,可以侦听资源中的更改—这就是构建器和资源侦听器的用途。我认为,不可能自动执行此操作,因为Eclipse资

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

我认为,不可能自动执行此操作,因为Eclipse资源不会一直与文件系统同步。更具体地说,文件更改不会直接触发Eclipse资源中的事件。只有在读取资源时才会刷新文件


也许如果你不断地刷新,这是可能的,但这可能会有相当大的开销。刷新后,可以侦听资源中的更改—这就是构建器和资源侦听器的用途。

我认为,不可能自动执行此操作,因为Eclipse资源并不总是与文件系统同步。更具体地说,文件更改不会直接触发Eclipse资源中的事件。只有在读取资源时才会刷新文件


也许如果你不断地刷新,这是可能的,但这可能会有相当大的开销。刷新后,可以监听资源中的更改—这就是构建器和资源侦听器的用途。

要比Zoltan的答案更准确:

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

  • 创建并计划每XXX秒运行一次的作业。此作业将运行IProject.refreshLocal(IResource.DEPTH_INFINITE,null)。运行此操作后,它将重新安排自己在另一个XXX秒内运行
  • 添加一个IResourceChangeListener,用于侦听您感兴趣的更改

  • 现在,如果只读更改发生在工作区内部,您将不必执行#1,而#2(资源更改侦听器)将自动运行。

    比Zoltan的答案更准确:

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

  • 创建并计划每XXX秒运行一次的作业。此作业将运行IProject.refreshLocal(IResource.DEPTH_INFINITE,null)。运行此操作后,它将重新安排自己在另一个XXX秒内运行
  • 添加一个IResourceChangeListener,用于侦听您感兴趣的更改

  • 现在,如果只读更改发生在工作区内部,您将不必执行#1,而#2(资源更改侦听器)将自动运行。

    谢谢您的回答,但我已经尝试过了。使用IResourceChangeListener.Hmm无法跟踪只读属性更改…您可能是对的。抱歉误导了你。看起来除了只读状态之外,所有类型的更改都有位标志。谢谢你的回答,但我已经尝试过了。使用IResourceChangeListener.Hmm无法跟踪只读属性更改…您可能是对的。抱歉误导了你。看起来除了只读状态之外,所有类型的更改都有位标志。