2009-07-19 16 views
5

के साथ अल्पविराम-सीमित फ़ाइल सूची उत्पन्न करना मैं वर्तमान निर्देशिका के अंतर्गत फ़ाइलों या निर्देशिकाओं की अल्पविराम-सीमित सूची बनाने का प्रयास कर रहा हूं। उदाहरण के लिए, मैं निम्न फ़ोल्डर संरचना है लगता है: "। Directory1, Directory2"चींटी

 
Root 
-- Directory1 
-- Directory2 
... 

मैं एक चर या संपत्ति है कि शामिल उत्पन्न करना चाहते हैं मैंने <dirset dir="." includes="*"> पर "कार्य के लिए" एंटी-कॉन्ट्रिब "का उपयोग करने की कोशिश की है, लेकिन यह पूर्ण पथ उत्पन्न करता है; मैंने फिर "बेसनाम" कार्य का उपयोग करके फ़ाइल नाम निकाले हैं, हालांकि बदले में आउटपुट प्रॉपर्टी उत्पन्न करता है। चूंकि गुण अपरिवर्तनीय हैं, मैं अभ्यास में जो प्राप्त करता हूं वह है "निर्देशिका 1, निर्देशिका 1, ..."

क्या ऐसा करने का एक सुरक्षित तरीका है, या मुझे यह करने के लिए जावा एक्सटेंशन लिखना होगा?

<dirset id="dirs" dir="." includes="*"/> 
<pathconvert dirsep="/" pathsep="," property="dirs" refid="dirs"/> 
<echo message="${dirs}"/> 

उत्तर

10

pathconvert कार्य मनमाने ढंग से विभाजक के साथ एक dirset फ़ॉर्मेट करने के लिए इस्तेमाल किया जा सकता।

<dirset id="dirset.sandbox" dir="${sandbox.dir}" includes="*"> 
    <exclude name="output"/> 
</dirset> 
<pathconvert pathsep=" " property="dirs.sandbox" refid="dirset.sandbox"> 
    <mapper type="flatten"/> 
</pathconvert> 
<echo message="[*** the sandbox dir list is ${dirs.sandbox} ***]"/> 

sandbox.dir/जड़/निर्माण/कार्यक्षेत्र के लिए इसी तरह एक पूर्ण पथ है और कई उपनिर्देशिका में शामिल है। आउटपुट उन निर्देशिकाओं की एक स्पेस से अलग सूची है।

+0

थोड़ा और प्रयास (ग्लोबमैपर और कुछ अन्य मामूली हैक्स का उपयोग करके) और मुझे पूरा यकीन है कि आपने अपने उदाहरण में पथसेप के साथ dirsep को स्विच किया है, लेकिन आपने मुझे सही दिशा में इंगित किया है। धन्यवाद! –

+0

'dirsep' और 'pathsep' मानों की तरह दिखता है। मुझे लगता है कि आप dirsep = "/" pathsep = "," – iTake

4

बस इस बात की पुष्टि Jörn का जवाब मैं वास्तव में क्या जरूरत थी (एक प्रारंभिक बिंदु के रूप में) के रूप में अच्छी तरह से: