Considérons le code:
File file = new File("c:\\temp\\Java\\testfile");
testfile
est un fichier et il peut ne pas exister. Je veux obtenir le répertoire c:\\temp\\Java\\
en utilisant l’objet File
. Comment puis-je faire cela?
Dans les deux cas, je m'attendrais à ce que file.getParent()
(ou file.getParentFile()
) vous donne ce que vous voulez.
De plus, si vous voulez savoir si le File
original existe existe et est un répertoire, puis exists()
et isDirectory()
sont ce que vous recherchez.
File.getParent () de Java Documentation
Si vous faites quelque chose comme ça:
File file = new File("test.txt");
String parent = file.getParent();
parent
sera nul.
Donc, pour obtenir le répertoire de ce fichier, vous pouvez faire ensuite:
parent = file.getAbsoluteFile().getParent();
L'API de fichier (File.getParent) ou File.getParentFile devrait vous retourner le répertoire du fichier.
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 en utilisant File.isDirectory API
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()); }
File filePath=new File("your_file_path");
String dir="";
if (filePath.isDirectory())
{
dir=filePath.getAbsolutePath();
}
else
{
dir=filePath.getAbsolutePath().replaceAll(filePath.getName(), "");
}
String parentPath = f.getPath().substring(0, f.getPath().length() - f.getName().length());
Ce serait ma solution
Vous pouvez utiliser ceci
File dir=new File(TestMain.class.getClassLoader().getResource("filename").getPath());