2014-12-03 80 views
1

我在工作區中動態創建一個文件並嘗試生成它的一個IFile實例。將Java.io.File轉換爲org.core.resource.IFile時出錯?

  IPath location= Path.fromOSString(file.getAbsolutePath()); 
      IFile iFile=ResourcesPlugin.getWorkspace().getRoot().getFile(location);   
      FileEditorInput input = new FileEditorInput(iFile); 

但是當我試圖查看ifile是否存在(使用iFile.exists())它給出了錯誤。

我試過使用規範路徑,但也沒有幫助。

回答

2

Eclipse工作區不會自動檢測文件系統的更改,您需要告訴工作區刷新其對本地文件系統的視圖。你可以這樣做:

iFile.refreshLocal(IResource.DEPTH_ZERO, null); 

如果多個文件已經改變,你可以在文件夾級別刷新更改深度。

+0

對不起,它沒有爲我工作。有沒有其他的工作。 – Raja 2014-12-04 03:00:58

+0

我找到了解決辦法。我使用FileStoreEditorInput而不是FileEditorInput並使用LocalFile創建了fileStore。它爲我做了這項工作。 – Raja 2014-12-04 03:19:41

+1

FileStoreEditorInput實際上是用於工作區之外的文件。編輯將不會同步到工作區,這可能會在稍後導致問題。 – 2014-12-04 09:30:58