मैं फ़ाइल ऑब्जेक्ट का उपयोग करके फ़ाइल की निर्देशिका कैसे प्राप्त करूं?


110

कोड पर विचार करें:

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

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

जवाबों:


170

किसी भी स्थिति में, मैं आपसे file.getParent()(या file.getParentFile()) उम्मीद करूँगा कि आप क्या चाहते हैं।

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


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

नीचे @geschema Ponaguynik का जवाब इस पते पर है
4myle


14

यदि आप ऐसा कुछ करते हैं:

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

parent अशक्त हो जाएगा।

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

parent = file.getAbsoluteFile().getParent();

8

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

आपका कोड इस तरह होना चाहिए:

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

आप अतिरिक्त रूप से अपनी मूल फ़ाइल की जाँच कर सकते हैं। File.isDirectory API का उपयोग करके निर्देशिका है

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
आप प्रश्न का उत्तर नहीं देते हैं, यह फ़ाइल के लिए काम नहीं करता है।
टोनि 07

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

धन्यवाद, नियत <! --->
जिगर जोशी

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

विवरण की आवश्यकता है।
हालवर होल्स्टेन स्ट्रैंड

1
ढेर अतिप्रवाह में आपका स्वागत है! सामान्य तौर पर, कोड उत्तरों को थोड़ा स्पष्टीकरण की आवश्यकता होती है - यह मेटा स्टैकओवरफ़्लो पोस्ट देखें । आपके द्वारा पोस्ट किए गए उत्तर के साथ, आपको यह समझाने की आवश्यकता हो सकती है कि आप एक सामान्य मामला देने की कोशिश कर रहे हैं और यह कैसे ओपी के वास्तविक पोस्ट से संबंधित है। अधिक गंभीरता से - आप इस पर विचार करना चाहते हैं कि यह कैसे काम करेगा your_file_path = "C:\\testfiles\\temp\\testfile";- मुझे नहीं लगता कि यह आपको आशा देगा।
जे रिचर्ड स्नेप

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

0

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

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

0
String parentPath = f.getPath().substring(0, f.getPath().length() - f.getName().length()); 

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


-1

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

File file = new File("\\TestHello\\test.txt");
System.out.println(file.getAbsoluteFile());
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.