2012-03-07 3 views
5

Sto costruendo un plug-in di eclissi in cui creerò un nuovo file nel mio progetto. C'è un modo per aggiornare il progetto corrente?Eclipse: come aggiornare il progetto corrente a livello di programmazione

So che posso avere un riferimento per tutto il progetto chiamando

ResourcesPlugin.getWorkspace().getRoot().getProjects() 

E l'iterare tra di loro e utilizzare

IResource.refreshLocal() 

Tuttavia questo approccio non è il migliore, soprattutto se l'utente ha molti progetti

Un'alternativa sarebbe esplorare il progetto per verificare se il nuovo file è presente o meno ma vorrei evitarlo.

+0

Non è necessario da chiamare 'refreshLocal' se si crea il file con l'API workspace, si veda 'org.eclipse.core.resources.IFile.create (InputStream, boolean, IProgressMonitor)' –

+0

@Tom Seidel Devo passare a quel metodo 'FileInputStream is = new FileInputStream (new File ("myPath")) '? – Maverik

+1

non utilizzare 'java.io.File' quando si lavora con Risorse nell'area di lavoro. Come creare un file, vedere lo snippet nella domanda http://stackoverflow.com/questions/1624054/eclipse-plugin-create-a-new-file –

risposta

2

Non è necessario da chiamare refreshLocal se si crea il file con l'API di lavoro, vedere org.eclipse.core.resources.IFile.create(InputStream, boolean, IProgressMonitor)

Come creare un file, vedere il frammento di nel Eclipse plugin: create a new file

+0

Grazie per il tuo aiuto! – Maverik

4

È molto più facile aggiornare a livello di progetto.

IProject project = root.getProject(currentProjectName); 
project.refreshLocal(IResource.DEPTH_INFINITE, null); 

È vero, questo potrebbe essere inefficiente, ma si è sicuri che l'intero progetto è stato aggiornato.

+0

Grazie a Gilbert, ora il problema è: come posso recuperare il nome del progetto corrente? Grazie ancora! – Maverik

+1

@lucaghera: hai già tutti i progetti con il codice nella tua domanda. Eclipse non saprà quale progetto è attuale. Spetta a voi determinare. –