Réponses:
Dans les deux cas, je m'attendrais file.getParent()
(ou file.getParentFile()
) à vous donner ce que vous voulez.
En outre, si vous voulez savoir si l'original File
ne exist et est un répertoire, exists()
et isDirectory()
êtes ce que vous êtes après.
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();
Le fichier API File.getParent ou File.getParentFile doit vous renvoyer le répertoire du fichier.
Votre code doit ê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()); }
code
fichier final = nouveau fichier ("C: /dev/changeofseasons.mid"); System.out.println ("le fichier existe?" + File.exists ()); System.out.println ("répertoire du fichier:" + file.getAbsolutePath ()); Ok, désolé pour les indentations boiteuses, je ne pense pas qu'il soit possible de formater le code dans les commentaires. Pourtant, votre code ne fonctionne évidemment pas.
File filePath=new File("your_file_path");
String dir="";
if (filePath.isDirectory())
{
dir=filePath.getAbsolutePath();
}
else
{
dir=filePath.getAbsolutePath().replaceAll(filePath.getName(), "");
}
your_file_path = "C:\\testfiles\\temp\\testfile";
- je ne pense pas que cela donnerait ce que vous espérez.