【问题标题】:Where to cache a file for a Eclipse RCP-plugin在哪里缓存 Eclipse RCP 插件的文件
【发布时间】:2016-12-30 22:49:08
【问题描述】:
我正在为 Eclipse-RCP-Application 开发一个插件。现在我想缓存一个文件(因为我不想在需要的时候访问互联网)。即使在重新启动应用程序后,该文件也应该可以访问。哪里是最适合它的地方?
我想到了workspace/.metadata 文件夹。但我不确定那是否是正确的地方以及如何检索位置信息。这应该可以,但我还没有找到ResourcesPlugin
ResourcesPlugin.getWorkspace().getRoot().getLocation().toString();
谁能告诉我存储此类文件的最佳位置?
【问题讨论】:
标签:
eclipse
eclipse-plugin
eclipse-rcp
workspace
【解决方案1】:
如果您不希望用户看到该文件,请使用插件“状态位置”。你得到这个使用:
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");
注意:您在问题中提到的代码会将文件放在工作区中,并且对用户可见。 ResourcesPlugin 在 org.eclipse.core.resources 插件中。