如果在 Project Explorer 中删除了在编辑器中打开的 IFile,则将其关闭

Close an open IFile in editor if it is deleted in Project Explorer

如果在 Project Explorer 中删除了在编辑器中打开的 IFile,我需要关闭它。

据我了解,IResourceChangeListener 可用于侦听项目工作区中的更改,但如何获取已删除的特定文件。

作为 event.getResource() returns 似乎正在更改一个 IProject。

如何找到已删除的文件并在打开时在编辑器中关闭该文件?

资源更改事件通常包含有关所有相关资源更改的信息。对于文件更改,这将是文件、父文件夹和项目。 IResourceChangeEventgetResource 方法只是 returns 您已更改的最顶层资源。

getDelta返回的IResourceDelta包含资源更改事件涵盖的全套资源:

IResourceDelta delta = event.getDelta();

您可以通过以下方式搜索特定文件的增量:

IResourceDelta fileDelta = delta.findMember(file.getFullPath());

您还可以使用 accept 方法对每个资源调用 'visitor'。