我正在为Eclipse创建一个插件,它包含用于创建自定义项目类型的工具。这些项目有一个定制的性质和建设者。我的生成器(实现IncrementalProjectBuilder)接受一个输入文件,并生成一些输出文件(通常在3到5之间)。当我运行Clean时,我需要删除构建器以前生成的文件。
问题1:生成的文件的名称并不确切,但我确实知道我希望找到的文件类型(例如,我知道扩展名和部分文件名)。
问题2:用户可以将自己的文件添加到项目中,这不应该受到我的构建/清理步骤的影响。
我最初的尝试是幼稚的:删除除输入文件之外的所有文件。这是可行的,但有明显的问题。
我的第二次尝试做得更好:我想出了一个可能生成的文件名的列表,看看它们是否存在并删除它们。
所以,我的问题归结为这个问题。有哪些方法可以识别我的自定义构建器生成的文件,这样我就可以在清理过程中删除它们?
我花了几天时间在谷歌上搜索这个没有什么可展示的东西。我隐约意识到Java中的文件系统监视器(Java7 WatchService?),但我不知道这是否是解决这个问题的最佳解决方案。
任何信息,建议或想法都很感激。
发布于 2014-12-17 07:40:16
一种蛮力方法是在调用其他程序之前和之后对项目进行比较,以获取创建/生成的文件列表。当然,如果该程序能够以某种方式告诉您它创建了哪些文件,这将是非常理想的。一旦有了这个列表,就可以以IFile的形式迭代这些文件,使用setDerived()方法将它们标记为非源文件。当需要清理目录时,可以使用派生设置来决定哪些文件可以删除。
https://stackoverflow.com/questions/27527288
复制相似问题