Vraag Hoe krijg ik de map van een bestand met het File-object?


Beschouw de code:

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

testfile is een bestand en het kan al dan niet bestaan. Ik wil de map ophalen c:\\temp\\java\\ de ... gebruiken File voorwerp. Hoe kan ik dit doen?


77
2017-09-07 08:50


oorsprong


antwoorden:


In beide gevallen zou ik verwachten file.getParent() (of file.getParentFile()) om je te geven wat je wilt.

Bovendien, als u wilt weten of het origineel File  doet bestaan ​​en is een directory, dan exists() en isDirectory() zijn wat je zoekt.


131
2017-09-07 08:51



File.getParent () van Java-documentatie


21
2017-09-07 08:52



File API File.getParent of File.getParentFile zou je directory van bestand moeten terugsturen.

Uw code moet zijn als:

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

U kunt bovendien controleren of uw bovenliggende bestand de map is met File.isDirectory API

if(file.isDirectory()){
    System.out.println("file is directory ");
}

7
2017-09-07 08:52



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());
}

4
2017-09-07 08:52



Als je zoiets doet als dit:

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

parent zal nul zijn.

Dus om de map van dit bestand te krijgen, kunt u het volgende doen:

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

3
2018-04-21 18:14



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

2
2018-03-03 10:49



Je kunt dit gebruiken

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

0
2018-01-29 08:25



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

Dit zou mijn oplossing zijn


0
2017-09-17 08:52