以编程方式重命名链接的资源

时间:2018-01-26 10:08:37

标签: java eclipse eclipse-pde

我是Eclipse插件开发的新手,我正在尝试重命名我的链接文件。 我在Eclipse中创建了一个链接文件,如下所示:

IFile myLinkedFile = folder.getFile(originalFileName);  
myLinkedFile.createLink(myabsolutePath, IResource.NONE, null); 

这就像一个魅力。

但是,现在我想重命名myLinkedFile而不更改原始文件的名称。就像在右键单击喜欢的文件时出现的上下文菜单中按F2或重命名的行为一样。

我正在尝试使用move()

重命名
originalFile.move(newPath, IResource.FORCE, null);  

然而它总是抛出

  

org.eclipse.core.internal.resources.ResourceException

...并抱怨我的newPath。有人能告诉我我的方法有什么问题,我该怎么做?

我的原始文件是位于C:/Temp/originalFile.txt的文本文件。我想在我的工作区中将文件重命名为newFile.txt。例外情况表示无效路径。对于newPath我指定为C:/Temp/newFile.txt

在下面的示例中,原始文件位于我项目的资源文件夹中 在这里,我将创建一个名为myTextFiles的新文件夹。此文件夹将包含链接的文件 创建链接文件后,我试图重命名链接的文件。

IFolder folder = myCurrentProject.getFolder("myTextFiles");  
folder.create(IResource.REPLACE, true, null);  

IFile file = folder.getFile(absoluteLocation); //absolute location of folder containing images  
file.createLink(absoluteLocation, IResource.REPLACE, null);  
folder.refreshLocal(IResource.DEPTH_INFINITE, null);            


String myNewFileName = "newFile.txt";  
IFile myLinkedFile = folder.getFile(myNewFileName);  
IPath newPath = new Path(myNewFileName);  

IFile movedFile = folder.getFile(newFileName);  
movedFile.createLink(newPath, IResource.NONE, null);  

folder.refreshLocal(IResource.DEPTH_INFINITE, null);  

1 个答案:

答案 0 :(得分:0)

您只能使用move将资源移动到Eclipse工作区中的新位置。

您为move指定的路径必须是相对于Eclipse工作区根目录或相对于当前资源位置的路径 - 通常只是文件名。

所以

IPath newPath = new Path("/project/folder/newFile.txt");

IPath newPath = new Path("newFile.txt");

以'/'开头的路径相对于工作空间根(称为'绝对'路径),其他任何内容都与当前资源文件夹相关。

Eclipse工作区中的路径从不使用“C:/”