gpt4 book ai didi

java - Eclipse 自定义生成器 : Identifying and cleaning generated files

转载 作者:太空宇宙 更新时间:2023-11-04 06:19:55 25 4
gpt4 key购买 nike

我正在为 Eclipse 创建一个插件,其中包含用于创建自定义类型项目的工具。这些项目具有自定义性质和构建器。我的构建器(实现 IncrementalProjectBuilder)采用单个输入文件,并生成一些(通常在 3 到 5 个之间)输出文件。当我运行 Clean Project 时,我需要删除构建器之前生成的文件。

问题 1:生成的文件的名称并不确切,但我确实知道我期望找到的文件类型(例如,我知道扩展名和部分文件名)。

问题 2:用户可以将自己的文件添加到项目中,这不应受到我的构建/清理步骤的影响。

我最初的尝试很天真:删除除输入文件之外的所有文件。这可行,但有明显的问题。

我的第二次尝试更好:我列出了可能生成的文件名列表,查看其中是否存在并删除它们。

  • 仅知道部分文件名并进行匹配,我可能会无意中删除用户的文件。例如。我知道我将生成一个名为 *_file.py 的文件。如果我生成的文件名为 abc_file.py 并且用户添加了自己的 xyz_file.py,我想清理(删除)abc_file.py 但保持 xyz_file.py 不变。

  • 从输入生成输出文件的程序不断变化,我不想依赖需要不断维护的具体文件列表。

所以,我的问题归结为这一点。有哪些方法可以识别我的自定义构建器生成的文件,以便我可以在清理过程中删除它们?

我花了几天时间在谷歌上搜索这个,但没有什么可展示的。我隐约知道 Java 中有一个文件系统观察程序(Java7 WatchService?),但我不知道这是否是解决此问题的最佳方案。

任何信息、建议或想法表示赞赏。

最佳答案

一种强力方法是比较调用其他程序之前和之后的项目,以获取创建/生成的文件列表。当然,如果该程序能够以某种方式告诉您它创建了哪些文件,那就更理想了。获得该列表后,您可以将这些文件作为 IFile 进行迭代,并使用 setDerived() 方法将它们标记为不是源文件。当需要清理目录时,您可以使用派生设置来决定可以删除哪些文件。

关于java - Eclipse 自定义生成器 : Identifying and cleaning generated files,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27527288/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com