2012-01-06 9 views
7

मैं एक निर्देशिका में ब्राउज़ करने के लिए एक ऐप में JFileChooser का उपयोग कर रहा हूं, हालांकि जब मैं निर्देशिका का चयन करता हूं तो यह मेरे द्वारा चुने गए फ़ोल्डर के ऊपर फ़ोल्डर का पथ देता है। यानी मैं चुनें "C: \ टेस्ट" और यह "C: \" रिटर्नJFileChooser getCurrentDirectory गलत वर्तमान निर्देशिका लौट रहा है?

यहाँ है कोड मैं

  JFileChooser c = new JFileChooser(); 
      c.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY); 
      int rVal = c.showSaveDialog(c); 
      if (rVal == JFileChooser.APPROVE_OPTION) { 
       txtDirectory.setText(""); 
       CC_Test.MsgBox(c.getCurrentDirectory().toString()); 
       txtDirectory.setText(c.getCurrentDirectory().toString()); 
      } 
      if (rVal == JFileChooser.CANCEL_OPTION) { 
       txtDirectory.setText(""); 
      } 

उत्तर

12

आपको चयनित फ़ाइल (इस मामले में निर्देशिका उर्फ) प्राप्त करने के लिए

c.getCurrentDirectory() 

के बजाय

c.getSelectedFile() 

उपयोग करना चाहिए। अन्यथा यह निर्देशिका को उत्पन्न करता है जो फ़ाइलकोसर के पैनल में दिखाया गया है (जो अभिभावक है) और जिसे चुना नहीं गया है।

3

का उपयोग कर रहा हूँ चयनित फ़ाइल या निर्देशिका हो रही के लिए, उपयोग करें:

c.getSelectedFile(); 

आप

c.getCurrentDirectory(); 

का उपयोग करते हैं वापसी ऑपरेटिंग सिस्टम पर निर्भर करता है।

3

आपको JFileChooser.getSelectedFile() का उपयोग करना होगा। File कक्षा दोनों निर्देशिकाओं और फ़ाइलों के लिए है।

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