2011-12-22 17 views
5

के माध्यम से एक ग्रहण परियोजना में संकुल (फ़ोल्डर्स) कैसे बनाएं Iclipse के लिए एक बड़े प्लगइन को विकसित करने का प्रयास करें ताकि कई फ़ोल्डरों (पैकेज) में कई जावा फाइलों को एक बड़े सॉफ्टवेयर के नए मॉड्यूल के लिए शुरुआती बिंदु के रूप में बनाया जा सके।प्लगइन

मैं इस तरह एक IFile वस्तु का उपयोग करने की कोशिश की है:

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

कि जब तक पथ पर काम करता है सभी फ़ोल्डर के रूप में फाइल करने के लिए मौजूद है। लेकिन यह किसी भी गायब फ़ोल्डर्स (नए पैकेज) नहीं बनाता है लेकिन "संसाधन मौजूद नहीं है" अपवाद फेंकता है।

मुझे IResource या IWorkspace ऑब्जेक्ट्स द्वारा ऐसा करने का कोई तरीका नहीं मिला।

उत्तर

9

व्यक्तिगत रूप से, मैं एक छोटे से विधि है जो रिकर्सिवली की तरह कुछ डर के सभी बनाता है, का उपयोग करें।

+0

मैं सिर्फ आईफोल्डर इंटरफेस में नहीं आया - तो बहुत बहुत धन्यवाद! – capoocan

+2

मुझे इस तरह के मूल कंटेनर के प्रकार को भी जांचना पड़ा: 'if (folder.getParent() उदाहरण IFolder) तैयार करें ... '। अन्यथा, 'getParent' को अंतिम कॉल' आईप्रोजेक्ट 'वापस कर देगा और बाद की कलाकार' क्लासकास्ट अपवाद 'का कारण बन जाएगी। – chrisklaussner

0

मुझे पता है कि यह आपके प्रश्न का उत्तर नहीं देता है, लेकिन क्या मैं सुझाव दे सकता हूं कि आप Maven Archetypes पर एक नज़र डालें? इस तरह, आप कॉन्फ़िगर करने योग्य और गैर ग्रहण-निर्भर तरीके से वांछित निर्देशिका संरचना और बॉयलरप्लेट फ़ाइलों के साथ प्रोजेक्ट टेम्पलेट्स बना सकते हैं।

IFile file = project.getFile(newPath); 

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

और फिर विधि

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

यह मेरे लिए अच्छी तरह से काम करता है:

संबंधित मुद्दे