2012-05-24 11 views
15

मैं चींटी (संस्करण 1.6.5) में एक अस्थायी निर्देशिका बनाना चाहता हूं और इसे किसी संपत्ति को असाइन करना चाहता हूं।चींटी में अस्थायी निर्देशिका कैसे बनाएं?

  • आदेश "mktemp -d" इस के लिए आदर्श होगा, लेकिन मैं चींटी
  • अंदर से इसी तरह की सुविधा मैं नहीं tempfile task जो जाहिरा तौर पर केवल बनाता है से अलग डॉक्स में कोई आधिकारिक समारोह पा सकते हैं नहीं मिल सकता है फ़ाइलें, निर्देशिका नहीं।
  • मैं tempfile को कॉल करने के लिए निष्पादन का उपयोग करने पर विचार कर रहा हूं और परिणाम प्राप्त कर रहा हूं, हालांकि यह मेरा build.xml यूनिक्स/लिनक्स पर निर्भर करेगा, जिसे मैं टालना चाहता हूं।

पृष्ठभूमि: मैं एक मौजूदा निर्माण प्रक्रिया को तेज करने की कोशिश कर रहा हूं जो नेटवर्क वाली फाइल सिस्टम के अंदर बनाता है। निर्माण पहले से ही सभी स्रोतों को एक अस्थायी निर्देशिका में प्रतिलिपि बनाता है, हालांकि यह एक ही फाइल सिस्टम पर है। मैंने इसे/tmp/foo में बदलने का परीक्षण किया है और यह एक सार्थक गति वृद्धि देता है: 3 मिनट बनाम 4 मिनट।

उत्तर

22

आप java.io.tmpdirsystem property साथ tempfile task गठबंधन एक अस्थायी निर्देशिका बनाने के लिए उपयोग करने के लिए एक फ़ाइल पथ प्राप्त करने के लिए कर सकते हैं:

<project default="test"> 

    <target name="test"> 
     <echo>${java.io.tmpdir}</echo> 
     <tempfile property="temp.file" destDir="${java.io.tmpdir}" prefix="build"/> 
     <echo>${temp.file}</echo> 
    </target> 

</project> 

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

यह कार्य एक अस्थायी फ़ाइल के नाम पर एक संपत्ति सेट करता है। java.io.File.createTempFile के विपरीत, यह कार्य वास्तव में अस्थायी फ़ाइल नहीं बनाता है, लेकिन यह गारंटी देता है कि फ़ाइल मौजूद नहीं थी जब कार्य निष्पादित किया गया था। मेरी वातावरण में

आउटपुट:

test: 
    [echo] C:\Users\sudocode\AppData\Local\Temp\ 
    [echo] C:\Users\sudocode\AppData\Local\Temp\build1749402932 
-1

केवल ऊपर जवाब कैसे एक अस्थायी निर्देशिका बनाने में पर संकेत। मुद्दा यह है कि केवल एक स्ट्रिंग देता है। एक और पूरा उत्तर

<target name="temptest" description="test making tempdir"> 
    <tempfile property="mytempdir" destdir="${java.io.tmpdir}"/> 
    <tempfile property="mytempfile" destdir="${mytempdir}"/> 
    <tstamp> 
     <format property="now" pattern="MMMM dd yyyy"/> 
    </tstamp> 
    <copy tofile="${mytempfile}"> 
     <string value="today=${now}"/> 
    </copy> 
    <property file="${mytempfile}"/> 
    <echo message="It it now ${today}"/> 
</target>    
संबंधित मुद्दे