2011-12-22 9 views
5

Cerco di sviluppare un piccolo plug-in per Eclipse per creare diversi file Java in diverse cartelle (pacchetti) come punto di partenza per un nuovo modulo di un software più grande.Come creare pacchetti (cartelle) in un progetto Eclipse tramite il plugin

Ho cercato di utilizzare un oggetto IFile come questo:

final IFile file = container.getFile(new Path(myFileName)); 
... 
file.create(stream, true, monitor); 

che funziona a patto che tutte le cartelle sul percorso del file esiste. Ma non crea alcuna cartella mancante (nuovi pacchetti) ma genera un'eccezione "la risorsa non esiste".

Non ho trovato alcun modo per farlo tramite gli oggetti IResource o IWorkspace.

risposta

9

Personalmente, io uso un piccolo metodo che crea ricorsivamente tutte le cartelle, qualcosa di simile:

IFile file = project.getFile(newPath); 

prepare((IFolder) file.getParent()); 

e quindi il metodo

public void prepare(IFolder folder) { 
    if (!folder.exists()) { 
     prepare((IFolder) folder.getParent()) 
     folder.create(false, false, null); 
    } 
} 

Questo metodo funziona bene per me.

+0

Solo che non mi sono imbattuto nell'interfaccia IFolder - quindi grazie mille! – capoocan

+2

Ho anche dovuto controllare il tipo del contenitore genitore in questo modo: 'if (folder.getParent() instanceof IFolder) prepara ...'. Altrimenti, l'ultima chiamata a 'getParent' restituirebbe un' IProject' e il cast successivo causerebbe un 'ClassCastException'. – chrisklaussner

0

So che questo non risponde alla tua domanda, ma posso suggerire di dare un'occhiata a Maven Archetypes? In questo modo, è possibile creare modelli di progetto con la struttura di directory desiderata e i file boilerplate, in modo configurabile e non dipendente da Eclipse.

Problemi correlati