我正在为Eclipse-RCP-Application开发一个插件。现在我想缓存一个文件(因为我不想在任何需要的时候访问互联网)。即使重新启动应用程序,也应该可以访问此文件。哪个地方最适合它?
我想到了workspace / .metadata文件夹。但我不确定这是否是正确的地方以及如何检索位置信息。这应该有效,但我还没有找到ResourcesPlugin
ResourcesPlugin.getWorkspace().getRoot().getLocation().toString();
有人能给我一个提示存放这样一个文件的最佳位置吗?
答案 0 :(得分:3)
如果您不希望用户看到该文件,请使用插件状态位置'。你可以使用:
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
插件中。