2012-03-07 12 views
8

मुझे वर्तमान में समस्या है कि मुझे एक अपवाद का सामना करना पड़ा जो मैंने पहले कभी नहीं देखा था और इसलिए मुझे नहीं पता कि इसे कैसे संभालना है।java.io.Exception से java.io.WinNTFileSystem.createFileExclusively पर छुटकारा पाने के लिए गर्म?

मैं दिए गए पैरामीटर के अनुसार एक फाइल बनाना चाहता हूं, लेकिन यह काम नहीं करेगा।

public static Path createFile(String destDir, String fileName) throws IOException { 
     FileAccess.createDirectory(destDir); 

     Path xpath = new Path(destDir + Path.SEPARATOR + fileName); 

     if (! xpath.toFile().exists()) { 
      xpath.toFile().createNewFile(); 
      if(FileAccess.TRACE_FILE)Trace.println1("<<< createFile " + xpath.toString()); 
     } 
     return xpath; 
    } 


    public static void createDirectory(String destDir) { 
     Path dirpath = new Path(destDir); 
     if (! dirpath.toFile().exists()) { 
      dirpath.toFile().mkdir(); 
      if(TRACE_FILE)Trace.println1("<<< mkdir " + dirpath.toString()); 
     } 
    } 

हर बार जब मैं अपने एप्लिकेशन को चलाने के निम्नलिखित अपवाद तब होता है:

java.io.IOException: The system cannot find the path specified 
at java.io.WinNTFileSystem.createFileExclusively(Native Method) 
at java.io.File.createNewFile(Unknown Source) 
[...] 

मैं इसे कैसे से छुटकारा मिलता है? (मैं Win7 64 बिट बीटीडब्ल्यू का उपयोग कर रहा हूं)

उत्तर

9

समस्या यह है कि फ़ाइल तब तक नहीं बनाई जा सकती जब तक कि पूरा युक्त पथ पहले से मौजूद न हो - इसकी तत्काल मूल निर्देशिका और उसके ऊपर के सभी माता-पिता।

आप एक रास्ता सी है, तो: \ अस्थायी और इसके नीचे कोई उप निर्देशिकाओं, और आप ग नामक एक फ़ाइल बनाने का प्रयास करें: \ अस्थायी \ subdir \ myfile.txt, कि असफल हो जायेगी क्योंकि C: \ अस्थायी \ subdir नहीं करता ' टी मौजूद नहीं है।

पहले

xpath.toFile().createNewFile(); 

जोड़ने

xpath.toFile().mkdirs(); 

(यदि mkdirs() सिर्फ वस्तु में पथ की आवश्यकता है मुझे यकीन है कि नहीं हूँ, अगर यह होता है, तो है कि नई लाइन को बदलने

new File(destDir).mkdirs(); 

अन्यथा, आपको एक उपनिवेश के रूप में बनाया गया आपका फ़ाइल नाम मिलेगा इसके बजाय ctory! आप यह सत्यापित कर सकते हैं कि आपके विंडोज एक्सप्लोरर को यह जांचने के लिए सही क्या है कि यह किस निर्देशिका में बनाया गया है।)

+0

धन्यवाद, _new फ़ाइल (destDir)। Mkdirs(); _ समाधान काम किया! – keinabel

+0

आपका स्वागत है। – JTeagle

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

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