119 votes

Comment obtenir le répertoire d'un fichier à l'aide de l'objet File?

Considérons le code:

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

testfile est un fichier et il peut ne pas exister. Je souhaite obtenir le répertoire c:\\temp\\java\\ à l'aide de l'objet File . Comment puis-je faire cela?

192voto

Jon Skeet Points 692016

Dans les deux cas, je m'attends file.getParent() (ou file.getParentFile()) pour vous donner ce que vous voulez.

En outre, si vous souhaitez savoir si l'original File n' existe et est un répertoire, exists() et isDirectory() sont ce que vous êtes après.

26voto

Joel Points 11003

9voto

YoK Points 8221

Fichier API de Fichier.getParent ou Fichier.getParentFile devrait vous retourner Répertoire du fichier.

Votre code devrait ressembler à :

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

Vous pouvez également vérifier votre fichier parent est le répertoire à l'aide de Fichier.isDirectory API

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

3voto

Jigar Joshi Points 116533
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 "  +  
            directory.getAbsolutePath());
}

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X