2013-11-04 19 views
5

मैं एक जेनकींस प्लगइन लिख रहा हूं और वर्तमान कार्यक्षेत्र का मार्ग प्राप्त करने के लिए मैं build.getWorkspace() का उपयोग कर रहा हूं। मुद्दा यह है कि यह एक फ़ाइलपैथ ऑब्जेक्ट देता है।मैं फ़ाइलपैथ को फ़ाइल में कैसे परिवर्तित कर सकता हूं?

मैं इसे फ़ाइल ऑब्जेक्ट में कैसे परिवर्तित कर सकता हूं?

+0

@Downvoter मुझे समझ नहीं आता क्यों कुछ लोग सिर्फ -1 बिना क्यों कह रही है। मुझे लगता है कि हमें किसी कोड को पोस्ट करने के लिए लड़के/लड़की को बताना चाहिए, पूछें कि उन्होंने अब तक क्या प्रयास किया है, और इसी तरह। बस कुछ प्रतिक्रिया दें ताकि हम सभी इस अनुभव से कुछ सीख सकें। – Morfic

+0

** प्रश्न: ** आप 'फ़ाइल' ऑब्जेक्ट क्यों चाहते हैं? 'फाइलपाथ' वास्तव में एक सुंदर अभिव्यक्तिपूर्ण एपीआई है, और विशेष रूप से दूरस्थ फ़ाइल संचालन को संभालने के लिए बनाया गया है। यदि आप रिमोट दास एजेंट पर 'फ़ाइल' का उपयोग करके वर्कस्पेस तक पहुंचने का प्रयास करते हैं, तो आपको "खराब समय होगा"। –

उत्तर

7

हालांकि मैं इस प्रयास नहीं किया है, javadoc आप यूआरआई प्राप्त कर सकते हैं, जहां से आप तो एक फ़ाइल बना सकते हैं के अनुसार: File myFile = new File(build.getWorkspace().toURI())

+0

हां। काम करने लगता है। धन्यवाद। – daniels

+0

यदि आपको स्ट्रिंग के रूप में पथ की आवश्यकता है, तो इसके बजाय 'build.workspace.getRemote()' का उपयोग करें। – sschuberth

3

अधिनियम फ़ंक्शन का उपयोग करें और अपने खुद के FileCallable कार्यान्वयन पर कॉल करें अगर आपकी प्लगइन मास्टर और गुलामों के लिए काम करनी चाहिए। अधिक जानकारी के लिए documentation, chapter "Using FilePath smartly" या यह stackoverflow answer देखें।

कोड उदाहरण (source):

void someMethod(FilePath file) { 
    // make 'file' a fresh empty directory. 
    file.act(new Freshen()); 
} 
// if 'file' is on a different node, this FileCallable will 
// be transferred to that node and executed there. 
private static final class Freshen implements FileCallable<Void> { 
    private static final long serialVersionUID = 1; 
    @Override public Void invoke(File f, VirtualChannel channel) { 
     // f and file represent the same thing 
     f.deleteContents(); 
     f.mkdirs(); 
     return null; 
    } 
} 
संबंधित मुद्दे

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