所以,我正在尝试设置我的Eclipse插件,以便它可以处理一些数据并在项目中生成一些文件。我可以使用IFolder
创建project.getFolder().create
,并使用IFile
创建正确的project.getFile().create()
个对象。但是,一旦创建,它们就会显示在项目导航器中,但是我收到很多关于“非本地”资源的错误,并且它们似乎没有显示在我的文件系统中。发生了什么,我需要改变什么?
以下是创建文件夹的代码:
IFolder f = project.getFolder(folderName);
if (!f.exists()) f.create(false, false, null);
我创建IFile
的代码基本相同。该插件只在我的本地文件系统上运行,所以我认为它是我的代码中的一些东西,造成错误。
答案 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中显示为非本地文件。