2011-12-22 15 views
5

Próbuję stworzyć małą wtyczkę dla Eclipse, aby utworzyć kilka plików Java w kilku folderach (pakietach) jako punkt wyjścia dla nowego modułu większego oprogramowania.Tworzenie pakietów (folderów) w projekcie Eclipse za pomocą wtyczki

Próbowałem użyć obiektu IFile tak:

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

To działa tak długo, jak wszystkie foldery na ścieżce do pliku istnieje. Ale nie tworzy żadnych brakujących folderów (nowe pakiety), ale generuje wyjątek "brak zasobów".

Nie mogłem znaleźć żadnego sposobu na zrobienie tego przez obiekty IResource lub IWorkspace.

Odpowiedz

9

Osobiście użyć małego metodę, która rekurencyjnie tworzy wszystkie foldery, coś takiego:

IFile file = project.getFile(newPath); 

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

a następnie metodę

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

Działa to dobrze dla mnie.

+0

Po prostu nie natknąłem się na interfejs IFolder - więc bardzo dziękuję! – capoocan

+2

Musiałem również sprawdzić typ kontenera nadrzędnego w ten sposób: 'if (folder.getParent() instanceof IFolder) przygotować ...'. W przeciwnym razie, ostatnie wywołanie 'getParent' zwróci' IProject', a kolejna obsada spowoduje 'ClassCastException'. – chrisklaussner

0

Wiem, że to nie odpowiada na twoje pytanie, ale czy mogę zasugerować, żebyś spojrzał na Maven Archetypes? W ten sposób można tworzyć szablony projektów z żądaną strukturą katalogów i plikami z zestawami znaków, w sposób konfigurowalny i niezależny od Eclipse.

Powiązane problemy