简单地说,这是我的问题:
如果给定一个 IFile,有没有办法检查该 IFile 是 .classpath
文件还是 .project
文件?
这是完整的独家新闻:
我正在实现一个资源同步器作为 Eclipse 插件的一部分,该插件使用我已安排接收的“资源更改消息”创建“复制代码库”(整个工作区的副本)。这些消息指示我必须添加/更改/删除哪些资源。例如,当添加 Java 项目时,我按顺序收到以下 4 条消息:
- {添加“.classpath”文件}
- {添加“.project”文件}
- {添加“org.eclipse.jdt.core.prefs”文件}
- {添加“src”文件夹}。
为了在本示例中创建 PROJECT 资源,我确保消息中每个资源的父资源都存在。因此,当我创建每个资源时,我会检查该资源的父资源是否存在 - 如果不存在,我会创建父资源(如我们示例中第一个“.classpath”消息的 PROJECT 资源),然后递归检查父资源的父资源是否存在存在。
我的问题是 Eclipse 在创建 PROJECT 时自动创建一个“.project”文件,因此 {ADD“.project”FILE} 消息变得多余。如果我只能在处理{ADD“.classpath”FILE}消息时检测到,那么我可以有选择地创建一个PROJECT,然后立即删除自动生成的“.project”文件,并且在处理下一个消息时不会有任何冲突消息(即{ADD“.project”文件})。
最佳答案
这些文件名是固定的,因此如果文件位于项目根文件夹中,您只需检查该名称即可。
org.eclipse.core.resources.IProjectDescription.DESCRIPTION_FILE_NAME
是 .project
和 org.eclipse.jdt.core.IJavaProject.CLASSPATH_FILE_NAME 的标准常量
为.classpath
。
关于java - Eclipse API : How to check whether an IFile is a . 项目或 .classpath 文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21373137/