2011-12-22 25 views
5

Intento desarrollar un pequeño complemento para Eclipse para crear varios archivos Java en varias carpetas (paquetes) como punto de partida para un nuevo módulo de un software más grande.Cómo crear paquetes (carpetas) en un proyecto Eclipse mediante el complemento

He tratado de utilizar un objeto IFile así:

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

que funciona siempre y cuando todas las carpetas en la ruta de acceso al archivo existe. Pero no crea ninguna carpeta faltante (paquetes nuevos) sino que arroja una excepción de "recurso no existe".

No he podido encontrar ninguna forma de hacerlo por IResource o IWorkspace objects.

Respuesta

9

Personalmente, yo uso un pequeño método que crea de forma recursiva todas las carpetas, algo así como:

IFile file = project.getFile(newPath); 

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

y luego el método

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

Esto funciona bien para mí.

+0

Simplemente no encontré la Interfaz IFolder, ¡así que muchas gracias! – capoocan

+2

También tuve que verificar el tipo de contenedor padre como este: 'if (folder.getParent() instanceof IFolder) prepare ...'. De lo contrario, la última llamada a 'getParent' devolvería un' IProject' y el siguiente molde causaría una 'ClassCastException'. – chrisklaussner

0

Sé que esto no responde a su pregunta, pero ¿puedo sugerir que eche un vistazo a Maven Archetypes? De esta forma, podría crear plantillas de proyecto con la estructura de directorios deseada y los archivos repetitivos, de una manera configurable y no dependiente de Eclipse.

Cuestiones relacionadas