2011-12-22 18 views
5

Tôi cố gắng phát triển một plugin nhỏ cho Eclipse để tạo một số tệp Java trong một số thư mục (gói) làm điểm bắt đầu cho mô-đun mới của phần mềm lớn hơn.Cách tạo gói (thư mục) trong dự án Eclipse qua plugin

Tôi đã cố gắng sử dụng một đối tượng IFile như thế này:

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

đó làm việc miễn là tất cả các thư mục trên đường dẫn đến tập tin tồn tại. Nhưng nó không tạo ra bất kỳ thư mục bị thiếu (gói mới) nhưng ném một ngoại lệ "tài nguyên không tồn tại".

Tôi không thể tìm thấy cách nào để thực hiện việc này bằng các đối tượng IResource hoặc IWorkspace.

Trả lời

9

Cá nhân, tôi sử dụng một phương pháp nhỏ mà đệ quy sẽ tạo ra tất cả các thư mục, một cái gì đó như:

IFile file = project.getFile(newPath); 

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

và sau đó là phương pháp

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

này hoạt động tốt đối với tôi.

+0

Tôi không thấy giao diện IFolder - vì vậy cảm ơn rất nhiều! – capoocan

+2

Tôi cũng đã phải kiểm tra loại của các thùng chứa cha mẹ như thế này: 'if (folder.getParent() instanceof IFolder) chuẩn bị ...'. Nếu không, lệnh gọi 'getParent' cuối cùng sẽ trả về' IProject' và lần cast tiếp theo sẽ gây ra 'ClassCastException'. – chrisklaussner

0

Tôi biết điều này không trả lời câu hỏi của bạn, nhưng tôi có thể đề nghị bạn xem Maven Archetypes? Bằng cách này, bạn có thể tạo các mẫu dự án với cấu trúc thư mục mong muốn và các tệp bản mẫu soạn sẵn, theo cách cấu hình và không phụ thuộc vào Eclipse.

Các vấn đề liên quan