资源不是本地的 - 在Eclipse插件中创建文件

时间:2012-02-27 07:08:42

标签: eclipse-plugin

所以,我正在尝试设置我的Eclipse插件,以便它可以处理一些数据并在项目中生成一些文件。我可以使用IFolder创建project.getFolder().create,并使用IFile创建正确的project.getFile().create()个对象。但是,一旦创建,它们就会显示在项目导航器中,但是我收到很多关于“非本地”资源的错误,并且它们似乎没有显示在我的文件系统中。发生了什么,我需要改变什么?

以下是创建文件夹的代码:

IFolder f = project.getFolder(folderName);
if (!f.exists()) f.create(false, false, null);

我创建IFile的代码基本相同。该插件只在我的本地文件系统上运行,所以我认为它是我的代码中的一些东西,造成错误。

3 个答案:

答案 0 :(得分:1)

IFolder f = project.getFolder(folderName);
if (!f.exists()) f.create(false, false, null);

f.create(...)方法的第二个参数中,如果设置为true将使文件夹LOCAL和错误不会出现(至少在我的情况下停止)。另外,我看到这些错误来自团队提供者(如git等)。

答案 1 :(得分:1)

我有同样的问题,我仍然不理解,但我确实有一些工作。我没有文件夹的问题,只有文件。起初我在创建文件时尝试设置文件内容:

file.create(contents, true, monitor);

这不起作用,我得到了“资源不是本地”的问题。

通过将内容的设置分成单独的步骤,突然间事情开始起作用了:

file.create(new ByteArrayInputStream(new byte[0]), true, monitor);
file.setContents(content, false, false, monitor);

我希望能帮助别人。

答案 2 :(得分:0)

检查输入流。如果它为null或抛出IOException,则f.create仍然会成功。但是,该文件在Eclipse UI中显示为非本地文件。