2009-11-17 9 views
6

मैं java.io का उपयोग कर एक फ़ाइल लिखने का प्रयास कर रहा हूं, जहां मैं इसे "some/path/to/somewhere/then-my-file" स्थान पर बनाने की कोशिश कर रहा हूं। जब फ़ाइल बनाई जा रही है, तो पथ पर मौजूद किसी भी निर्देशिका मौजूद हो सकती है या नहीं भी हो सकती है। IOException को फेंकने की बजाय, ऐसी कोई निर्देशिका नहीं है, मैं चाहता हूं कि जब निर्देशिका आवश्यक हो, निर्देशिकाओं को पारदर्शी रूप से बनाया जाए।किसी स्थान पर फ़ाइल बनाने के लिए जावा में विधि, यदि आवश्यक हो तो निर्देशिका बनाना?

क्या कोई ऐसी विधि है जो फ़ाइल लिखने के तरीके पर आवश्यक कोई भी निर्देशिका तैयार करेगी? मैं जावा एसडीके, या के भीतर एक लाइटवेट लाइब्रेरी के भीतर कुछ ढूंढ रहा हूं जिसे मैं क्लासपाथ में जोड़ सकता हूं, उदा। अपाचे कॉमन्स आईओ।

पीएस स्पष्टता के लिए, मैंने पहले से ही एक समाधान को कोड किया है, जो कि मैं इसे जांचने के काफी संकीर्ण तरीके से काम करता हूं, इसलिए मुझे जिस विधि को मैं ढूंढ रहा हूं उसे लिखने के लिए मुझे वास्तव में सुझावों की आवश्यकता नहीं है। मैं एक ऐसी विधि की तलाश में हूं जो काफी अच्छी तरह से परीक्षण किया जाएगा, और क्रॉस-प्लेटफ़ॉर्म।

उत्तर

24

new File("some/path/to/somewhere/then-my-file").getParentFile().mkdirs()

+2

+1। आप बहुत तेज़ हैं – ChssPly76

+1

क्षमा करें ... मेरा कीबोर्ड अब आग पर है ... नहीं कर सकता .... टाइप करें ... – skaffman

+0

बहुत बढ़िया, धन्यवाद। – Grundlefleck

2

सवाल भी पुस्तकालय अपाचे आम आईओ उल्लेख के बाद से, मैं में रिपोर्ट एक समाधान यह अच्छा पुस्तकालय का उपयोग करता है निम्नलिखित:

File file = new File("... the directory path ..."); 
FileUtils.forceMkdir(file); 

यह समाधान से, वर्ग FileUtils का उपयोग करता है पैकेज org.apache.commons.io और विधि forceMkdir, कि "किसी भी आवश्यक लेकिन गैर-कानूनी अभिभावक निर्देशिका सहित एक निर्देशिका बनाता है"।

+1

टीएस _regular_ फ़ाइल बनाना चाहता है। फिर यह 'FileUtils.forceMkdir (regularFile.getParentFile())' या 'FileUtils.forceMkdirParent (regularFile) 'संस्करण 2.5 –

+0

से अच्छा पकड़ होगा! इसे सुधारने के लिए उत्तर को संपादित करने के लिए स्वतंत्र महसूस करें। टिप्पणियां अक्सर गैर-पढ़ी जाती हैं – JeanValjean

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