क्या कोई मुझे इन दो तरीकों के बीच का अंतर बता सकता है:
file.mkdir()file.mkdirs()
क्या कोई मुझे इन दो तरीकों के बीच का अंतर बता सकता है:
file.mkdir()file.mkdirs()जवाबों:
mkdirs()यह प्रतिनिधित्व करने वाले मार्ग में मूल निर्देशिका भी बनाता है File।
javadocs के लिए mkdirs():
इस सार पथ नाम से निर्देशिका बनाता है, जिसमें किसी भी आवश्यक लेकिन कोई भी मूल माता-पिता की निर्देशिका शामिल नहीं है। ध्यान दें कि यदि यह ऑपरेशन विफल हो जाता है, तो यह कुछ आवश्यक मूल निर्देशिका बनाने में सफल हो सकता है।
javadocs के लिए mkdir():
इस अमूर्त pathname द्वारा नामित निर्देशिका बनाता है।
उदाहरण:
File f = new File("non_existing_dir/someDir");
System.out.println(f.mkdir());
System.out.println(f.mkdirs());
falseपहले [और कोई dir नहीं बनाया जाएगा] के लिए उपज होगा, और trueदूसरे के लिए, और आपने बनाया होगाnon_existing_dir/someDir
mkdir()वापस आती है trueया false? इस पहलू को कवर करने के लिए javadoc प्रतीत नहीं होता है।
mkdirs()अपनी संपूर्णता में निर्दिष्ट निर्देशिका पथ बनाएगा, जहां mkdir()केवल सबसे नीचे निर्देशिका बनाई जाएगी, यदि यह उस निर्देशिका के मूल निर्देशिका को नहीं पा सकता है जिसे वह बनाने का प्रयास कर रहा है।
दूसरे शब्दों mkdir()में जैसा है mkdirऔर mkdirs()जैसा है mkdir -p।
उदाहरण के लिए, कल्पना करें कि हमारे पास एक खाली /tmpनिर्देशिका है। निम्नलिखित कोड
new File("/tmp/one/two/three").mkdirs();
निम्नलिखित निर्देशिका बनाएंगे:
/tmp/one/tmp/one/two/tmp/one/two/threeयह कोड कहां है:
new File("/tmp/one/two/three").mkdir();
कोई निर्देशिका नहीं बनाएगा - क्योंकि यह नहीं मिलेगी /tmp/one/two- और वापस आ जाएगी false।
mkdir()
एक समय में केवल एक निर्देशिका बनाता है, अगर यह माता-पिता है कि केवल एक। अन्य बुद्धिमान यह उप निर्देशिका बना सकते हैं (यदि निर्दिष्ट पथ केवल मौजूद है) और किसी भी दो निर्देशिकाओं के बीच कोई निर्देशिका नहीं बनाते हैं। इसलिए यह एक निर्देशिका में smultiple निर्देशिका नहीं बना सकता है
mkdirs()
एक समय में कई निर्देशिकाएं (दो निर्देशिकाओं के बीच भी) बनाएं।