2012-02-27 116 views
2

因此,我試圖設置我的Eclipse插件,以便它可以處理一些數據並在項目中生成一些文件。我可以使用project.getFolder().create創建一個IFolder,並使用project.getFile().create()創建正確的IFile對象。但是,一旦創建完成,它們就會顯示在項目導航器中,但是我發現很多關於「本地」資源的錯誤,而且它們似乎並沒有出現在我的文件系統中。發生了什麼,我需要改變什麼?資源不是本地的 - 在Eclipse插件中創建文件

下面是創建該文件夾中的代碼:

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

而且我對創建IFile在本質上是相同的代碼。該插件只是在我的本地文件系統上運行,所以我認爲這是我的代碼中創建錯誤的東西。

+0

您是否可以使用顯示創建的適當代碼片段更新您的問題?您的項目是否託管在遠程EFS上?或者只是一個標準的本地目錄? – 2012-02-27 16:17:04

+0

只是一個標準的本地目錄,我添加了一個文件夾的創建代碼 - 我假設我缺少一些步驟或對象,使其工作,我只是不知道在哪裏。 – Tas 2012-02-27 22:33:28

+0

當你創建文件時,你給它什麼樣的輸入流? – 2012-02-28 12:23:50

回答

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

在如果設置爲true將使該文件夾LOCAL和錯誤不會進來f.create(...)方法的第二個參數(至少在我的情況下停止)。另外,我看到這些錯誤來自團隊提供者(如git等)。

1

我有同樣的問題,我仍然不明白,但我確實有一些工作。我沒有文件夾的問題,只有文件。起初,我試圖創建文件時,設置文件內容:

file.create(contents, true, monitor); 

這沒有工作,我得到了「資源不是本地」的問題。

通過拆分內容到一個單獨的步驟的設定,突然事情就開始工作:

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

我希望可以幫助別人。

0

檢查您的輸入流。如果它爲空或拋出IOException,則f.create仍然會成功。但是該文件在Eclipse UI中將顯示爲不在本地。