在哪里缓存 Eclipse RCP 插件的文件

Where to cache a file for a Eclipse RCP-plugin

我正在为 Eclipse-RCP-Application 开发一个插件。现在我想缓存一个文件(因为我不想在需要时访问互联网)。即使在重新启动应用程序后也应该可以访问该文件。最好的地方在哪里?

我想到了 workspace/.metadata 文件夹。但我不确定那是否是正确的地方以及如何检索位置信息。这应该可以,但我还没有找到 ResourcesPlugin

ResourcesPlugin.getWorkspace().getRoot().getLocation().toString();

谁能告诉我存储此类文件的最佳位置?

如果您不想让用户看到该文件,请使用插件 'state location'。你得到这个使用:

Bundle bundle = ... your plugin's Bundle

IPath path = Platform.getStateLocation(bundle);

插件的状态位置是一个文件夹,它是工作区元数据的一部分(准确地说是 .metadata/.plugins/plugin id)。

你可以把你喜欢的任何东西放在这个文件夹里。由您的插件来管理这些数据。

您可以通过多种方式获得Bundle,例如:

Bundle bundle = FrameworkUtil.getBundle(getClass());

Bundle bundle = Platform.getBundle("plugin id");

注意:您在问题中提到的代码会将文件放在工作区中,并且用户可以看到。 ResourcesPluginorg.eclipse.core.resources 插件中。