Comment puis-je obtenir le répertoire d’un fichier à l’aide de l’object File?

Considérons le code:

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

fichier de testfile est un fichier et peut ou non exister. Je veux obtenir le répertoire c:\\temp\\java\\ utilisant l’object File . Comment vais-je faire ça?

Dans les deux cas, je pense que file.getParent() (ou file.getParentFile() ) vous donnera ce que vous voulez.

De plus, si vous voulez savoir si le File origine existe et s’il s’agit d’ un répertoire, alors isDirectory() et isDirectory() sont ce que vous recherchez.

File.getParent () à partir de la documentation Java

L’API de fichier File.getParent ou File.getParentFile doit retourner votre répertoire de fichiers.

Votre code devrait être comme:

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

Vous pouvez également vérifier que votre fichier parent est un répertoire à l’aide de l’API File.isDirectory.

 if(file.isDirectory()){ System.out.println("file is directory "); } 
 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()); } 

Si vous faites quelque chose comme ça:

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

parent sera nul.

Donc, pour obtenir le répertoire de ce fichier, vous pouvez faire ensuite:

 parent = file.getAbsoluteFile().getParent(); 
 File filePath=new File("your_file_path"); Ssortingng dir=""; if (filePath.isDirectory()) { dir=filePath.getAbsolutePath(); } else { dir=filePath.getAbsolutePath().replaceAll(filePath.getName(), ""); } 

Vous pouvez l’utiliser

  File dir=new File(TestMain.class.getClassLoader().getResource("filename").getPath()); 
 Ssortingng parentPath = f.getPath().subssortingng(0, f.getPath().length() - f.getName().length()); 

Ce serait ma solution

J’ai trouvé cela plus utile pour obtenir l’emplacement de fichier absolu.

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