2010-09-07 7 views
72

कोड पर विचार करें:फ़ाइल ऑब्जेक्ट का उपयोग करके मुझे फ़ाइल की निर्देशिका कैसे प्राप्त हो सकती है?

File file = new File("c:\\temp\\java\\testfile"); 

testfile एक फ़ाइल है, और यह या मौजूद नहीं हो सकता है। मैंनिर्देशिका File ऑब्जेक्ट का उपयोग कर निर्देशिका प्राप्त करना चाहता हूं। मैं यह कार्य कैसे करूं?

उत्तर

126

किसी भी मामले में, मैं आपको जो चाहता हूं उसे देने के लिए file.getParent() (या file.getParentFile()) की अपेक्षा करता हूं।

ही, यदि आप बाहर मूल File मौजूद है कि क्या पता लगाने के लिए चाहते हैं और एक निर्देशिका exists() और isDirectory() है, तो क्या आप के बाद कर रहे हैं कर रहे हैं।

+7

उपयोग file.getParent() ध्यान से हो सकता है, क्योंकि यह कुछ मामलों में अशक्त वापस आ सकते हैं । – geschema

+0

@geschema Ponaguynik का उत्तर नीचे इस – 4myle

21

जावा प्रलेखन से File.getParent()

+0

को संबोधित करता है यह 404s * फिलर टेक्स्ट * – Caelum

+0

https://docs.oracle.com/javase/8/docs/api/java/io/File.html#getParent-- –

7

फ़ाइल एपीआई File.getParent या File.getParentFile आप फ़ाइल की निर्देशिका लौटना चाहिए।

File file = new File("c:\\temp\\java\\testfile"); 
    if(!file.exists()){ 
     file = file.getParentFile(); 
    } 

इसके अतिरिक्त आपके अपने माता पिता फ़ाइल की जाँच कर सकते है निर्देशिका File.isDirectory एपीआई

if(file.isDirectory()){ 
    System.out.println("file is directory "); 
} 
4
File directory = new File("Enter any 
       directory name or file name"); 
boolean isDirectory = directory.isDirectory(); 
if (isDirectory) { 
    // It returns true if directory is a directory. 
    System.out.println("the name you have entered 
     is a directory : " + directory); 
    //It returns the absolutepath of a directory. 
    System.out.println("the path is " + 
       directory.getAbsolutePath()); 
} else { 
    // It returns false if directory is a file. 
    System.out.println("the name you have 
    entered is a file : " + directory); 
    //It returns the absolute path of a file. 
    System.out.println("the path is " + 
      file.getParent()); 
} 
+1

आप नहीं करते सवाल का जवाब दें, यह फ़ाइल के लिए काम नहीं करता है। – toni07

+0

मुझे पुन: उत्पन्न उदाहरण @toni –

+0

'कोड' अंतिम फ़ाइल फ़ाइल = नई फ़ाइल (" सी: /dev/changeofseasons.mid ") दिखाएं; System.out.println ("फ़ाइल मौजूद है?" + File.exists()); System.out.println ("फ़ाइल की निर्देशिका:" + file.getAbsolutePath()); ठीक है, लंग इंडेंटिंग के लिए खेद है, मुझे नहीं लगता कि टिप्पणियों में कोड प्रारूपित करना संभव है। फिर भी, आपका कोड स्पष्ट रूप से काम नहीं करता है। – toni07

2
File filePath=new File("your_file_path"); 
String dir=""; 
if (filePath.isDirectory()) 
{ 
    dir=filePath.getAbsolutePath(); 
} 
else 
{ 
    dir=filePath.getAbsolutePath().replaceAll(filePath.getName(), ""); 
} 
+0

विवरण की आवश्यकता है। –

+1

स्टैक ओवरफ़्लो में आपका स्वागत है! आम तौर पर, कोड उत्तरों को थोड़ा स्पष्टीकरण की आवश्यकता होती है - यह मेटा [स्टैक ओवरफ्लो पोस्ट] देखें (http://meta.stackoverflow.com/a/260413/838992)। आपके द्वारा पोस्ट किए गए उत्तर के साथ, आपको यह समझाने की आवश्यकता हो सकती है कि आप एक सामान्य मामला देने की कोशिश कर रहे हैं और यह ओपी की वास्तविक पोस्ट से कैसे संबंधित है। अधिक गंभीरता से - आप यह विचार करना चाहेंगे कि यह 'your_file_path = "C: \\ testfiles \\ temp \\ testfile" पर कैसे काम करेगा;' - मुझे नहीं लगता कि यह आपको जो आशा देगा वह देगा। –

+0

सही उत्तर होना चाहिए। यह फ़ाइल के लिए पूरा रास्ता दिखाएगा। –

0

इस आप उपयोग कर सकते हैं का उपयोग कर:

आपका कोड की तरह होना चाहिए

File dir=new File(TestMain.class.getClassLoader().getResource("filename").getPath()); 
-1

मुझे पूर्ण फ़ाइल स्थान प्राप्त करने के लिए यह और अधिक उपयोगी पाया गया।

File file = new File("\\TestHello\\test.txt"); 
System.out.println(file.getAbsoluteFile()); 
2

आप कुछ इस तरह करते हैं:

File file = new File("test.txt"); 
String parent = file.getParent(); 

parent बातिल हो जाएगा।

तो इस फ़ाइल की निर्देशिका आप आगे क्या कर सकते हैं पाने के लिए:

parent = file.getAbsoluteFile().getParent(); 
0
String parentPath = f.getPath().substring(0, f.getPath().length() - f.getName().length()); 

यह मेरा समाधान

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

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